https://note.youdao.com/ynoteshare1/index.html?id=dbf6153529ceba0f5f9707758c237dfe&type=note#/
-- 1.查询部门为20的员工列表
SELECT t.DEPTNO,t.ENAME FROM SCOT

2.使用 listagg() WITHIN GROUP () 将多行合并成一行
SELECT
T .DEPTNO,
listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .ENAME) names
FROM
SCOTT.EMP T
WHERE
T .DEPTNO = '20'
GROUP BY
T .DEPTNO

3. 使用 listagg() within GROUP () over 将多行记录在一行显示
SELECT
T .DEPTNO,
listagg (T .ENAME, ',') WITHIN GROUP (ORDER BY T .ENAME) over(PARTITION BY T .DEPTNO)
FROM
SCOTT.EMP T
WHERE
T .DEPTNO = '20'

本文介绍如何使用SQL的listagg()函数结合WITHIN GROUP()和OVER子句,对来自同一部门的员工姓名进行列表聚合,实现多行记录的合并与显示。通过实际案例,展示listagg()函数在数据处理中的灵活应用。
1661

被折叠的 条评论
为什么被折叠?



