需求:相同ID行对应的name值以逗号隔开,查询字段较多时,直接group by 无法实现需求
解决方法: oralce 9 支持 WM_CONCAT内建函数
oracle 11 优化为LISTAGG() WITHIN GROUP()分析函数 (可以排序,针对结果再group by)
SELECT
CE.SERIAL_NO,CE.ID,
LISTAGG ( EC.CERTIFICATENAME, ',' ) WITHIN GROUP ( ORDER BY CE.ID )
FROM
MMIS_COM.COM_EMPLOYEE CE
LEFT JOIN EMPLOYEE_CERTIFICATE EC ON CE.ID = EC.EMPID
AND EC.SYZT = 0
WHERE
CE.SYZT = 0
AND ( ( CE.SSYYDM = '314000' ) )
GROUP BY
CE.SERIAL_NO,CE.ID ORDER BY CE.ID
执行结果:
版权声明:本文为weixin_44967669原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。