需求需要把多行数据拼接为一行,而且要按顺序
一开始用的EN_CONCAT函数,数据拼接是没问题,可是排序却怎么也排不了,子查询呀,临时表啊都试了,但就是一group by 排序就乱
后来百度发现了listagg函数,简直不要太巴适~
SELECT T.ID,LISTAGG(T.NAME,',') WITHIN GROUP (ORDER BY T.ORDER_NO) FROM TABLE TGROUP BY T.ID
SELECT T.ID,LISTAGG(T.NAME,',') WITHIN GROUP (ORDER BY T.ORDER_NO) OVER(PARTITION BY T.ID)FROM TABLE T
以上两种用法结果相同