今天oracle从11g升级到12c,突然发现原来的wmsys.wm_concat()函数不能使用了,查了而之后可以使用listagg代替。
参考:https://blog.csdn.net/sinat_36257389/article/details/81004843
使用 listagg() WITHIN GROUP () 将多行合并成一行(比较常用)
select listagg(tjname,',') within group (order by tjname) as tjname
from dy_jg
where tjcode in ([多个tjcode])
使用 listagg() within GROUP () over 将多行记录在一行显示(没有遇到过这种使用场景)
SELECT
T .DEPTNO,
listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .ENAME) over(PARTITION BY T .DEPTNO)
FROM
SCOTT.EMP T
WHERE
T .DEPTNO = '20'