Oracle聚合函数LISTAGG和WM_CONCAT简介
LISTAGG是Oracle中的一个聚合函数,用于将分组中的多个行的字符串值连接成一个单独的字符串。WM\_CONCAT是一个在Oracle 11g之前的版本中用于实现字段合并的非官方函数。
LISTAGG的基本语法如下:
LISTAGG(column, delimiter) WITHIN GROUP (ORDER BY column)
WM\_CONCAT的基本语法如下:
SELECT WM_CONCAT(column) FROM table;
示例代码:
-- 使用LISTAGG
SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
FROM emp
GROUP BY deptno;
-- 使用WM_CONCAT(仅适用于Oracle 11g及之前版本)
SELECT deptno, WM_CONCAT(ename) AS employees
FROM emp
GROUP BY deptno;
在Oracle 12c及更高版本中,推荐使用LISTAGG函数,因为WM\_CONCAT是一个不推荐使用的函数,并可能在未来的版本中被移除。
评论已关闭