【发布时间】:2014-08-29 07:04:55
【问题描述】:
表 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
如何改变'select'查询来实现这个结果,col4值是val4A、val4B、val4C的组合值(用分号分隔)?
【问题讨论】:
-
在您的位置上,我将创建一个返回
varchar2的函数,该函数将聚合第二个表中的正确值。 -
你的数据库版本是什么??
-
@a_horse_with_no_name - 好吧,我需要更多地使用
LISTAGG,我一直忘记...
标签: sql oracle select left-join