表t1:
pk_id | col1 | col2 | col3
===========================
1 | val1 | val2 | val3
表t2 :( fk_id是对pk_id的外键引用)
fk_id | col4
=============
1 | val4A
1 | val4B
1 | val4C
我的SQL查询是:
select pk_id,col1,col2,col3,col4
from t1 left join t2 on t1.pk_id=t2.fk_id;
结果是:
pk_id | col1 | col2 | col3 | col4
===================================
1 | val1 | val2 | val3 | val4A
1 | val1 | val2 | val3 | val4B
1 | val1 | val2 | val3 | val4C
但我真的想要这个结果:
pk_id | col1 | col2 | col3 | col4
===============================================
1 | val1 | val2 | val3 | val4A;val4B;val4C
如何更改'选择'用col4值实现这个结果的查询是val4A,val4B,val4C的组合值(用分号分隔)?
答案 0 :(得分:2)
您可以使用LISTAGG
。
select pk_id,col1,col2,col3,
LISTAGG (t2.col4, ';') WITHIN GROUP (ORDER BY t2.col4) AS col4
from t1 left join t2 on t1.pk_id=t2.fk_id
group by pk_id, col1, col2, col3;