oracle 提供了两个函数 WMSYS.WM_CONCAT 和 ListAgg函数。 sql
id name 1 aa 2 bb 3 cc
select WMSYS.WM_CONCAT(a.name) from user a
select replace(WMSYS.WM_CONCAT(a.name),',',';') from user a
结果:"aa;bb;cc" oracle
注意:使用时若是出现乱码: 函数
LISTAGG( [,]) WITHIN GROUP (ORDER BY ) [OVER (PARTITION BY )]
listagg虽然是聚合函数,但能够提供分析功能(好比可选的OVER()子句)。使用listagg中,下列中的元素是必须的: spa
•分组中的ORDER BY子句 code
DEPTNO ENAME --------- ---------- 10 CLARK 10 KING 10 MILLER 20 ADAMS 20 FORD 20 JONES
SELECT deptno,LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees FROM emp GROUP BY deptno;