6.10 根据表中的行创建一个分隔列表 ---要求将emp表中的ename,用逗号间隔合并在一起显示。如:CLARK,KING,MILLER listagg: 把字符串连在一起 SELECT deptno, SUM(sal) AS total_sal, listagg(ename, ',') within GROUP(ORDER BY ename) AS totoal_ename FROM emp GROUP BY deptno; listagg(ename, ',') 第一个参数 第2个是分隔符(自定义) within GROUP(ORDER BY ename 当前分组内 SQL> SELECT empno, 2 ename, 3 deptno, 4 sal, 5 SUM(sal) over(PARTITION BY deptno) AS total_sal, 6 listagg(ename, ',') within GROUP(ORDER BY ename) over(PARTITION BY deptno) AS total_ename 7 FROM emp 8 WHERE deptno IN (10, 20); EMPNO ENAME DEPTNO SAL TOTAL_SAL TOTAL_ENAME ---------- ---------- ---------- ---------- ---------- ------------------------------ 7782 CLARK 10 2450 8750 CLARK,KING,MILLER 7839 KING 10 5000 8750 CLARK,KING,MILLER 7934 MILLER 10 1300 8750 CLARK,KING,MILLER 7876 ADAMS 20 1100 10875 ADAMS,FORD,JONES,SCOTT,SMITH 7902 FORD 20 3000 10875 ADAMS,FORD,JONES,SCOTT,SMITH 7566 JONES 20 2975 10875 ADAMS,FORD,JONES,SCOTT,SMITH 7788 SCOTT 20 3000 10875 ADAMS,FORD,JONES,SCOTT,SMITH 7369 SMITH 20 800 10875 ADAMS,FORD,JONES,SCOTT,SMITH 已选择8行。 主查询不分组的时候,分析函数取分组的数据