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;