Oracle 19c: 使用 LISTAGG 替代 WM_CONCAT 函数
Oracle 19c 已经弃用了 WM_CONCAT 函数,并推荐使用 LISTAGG 函数来替代它。LISTAGG 函数可以将一个列中的多个值合并成一个字符串,并且可以使用指定的分隔符来分隔不同的值。
以下是使用 LISTAGG 函数替换 WM_CONCAT 函数的示例:
使用 WM_CONCAT 函数:
SELECT deptno, WM_CONCAT(ename) AS employees
FROM emp
GROUP BY deptno;
使用 LISTAGG 函数:
SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
FROM emp
GROUP BY deptno;
在上面的示例中,使用 WITHIN GROUP 子句指定了按照 ename 列的顺序来合并值,并且使用逗号作为分隔符。注意,如果没有指定 WITHIN GROUP 子句,则 LISTAGG 函数会按照数据库的默认排序顺序来合并值。
原文地址: https://www.cveoy.top/t/topic/nAEr 著作权归作者所有。请勿转载和采集!