如果这些测试属于一个 sample_id ,我怎样才能在 oracle SQL 中选择一行而不是多行中的所有测试名称?
这是查询
select distinct d.sample_id, c.test_name_eng
from mr_files a,
lab_sample_header b,
lab_tests c,
lab_sample_details d,
lab_orders o
where a.patient_no = b.patient_no
and b.order_id = d.order_id
and c.test_no = d.test_no
and a.patient_no = o.patient_no
and b.order_id = o.order_id
and d.order_id = 2025000045
and b.sample_id = d.sample_id
and d.sample_status = 2;
现在输出:
SAMPLE_ID TEST_NAME
BCH-25-100 CALCIUM
BCH-25-100 SODIUM
BCH-25-100 ALBUMIN
HE-25-43 CBC
但是,如果测试具有相同的样本 ID,则需要输出出现在一行而不是多行中,如下所示:
SAMPLE_ID TEST_NAME
BCH-25-100 CALCIUM ,SODIUM , ALBUMIN
HE-25-43 CBC
SQL 服务器中有一个函数可以实现这个想法,叫做“
string_agg
`但我不知道如何在 Oracle 中做到这一点?