理解oracle数据库中listagg within group函数

listagg within group函数为Oracle特有的分析函数,将列转为行

直接上例子

oracle自带emp表

需求:我们想得到部门(DEPTNO)为20和30的员工姓名(ENAME),并将员工姓名转为一行

sql:

SELECT
    T .DEPTNO,
    listagg (T .ENAME, '|') WITHIN GROUP (ORDER BY T .ENAME) names
FROM
    EMP T
WHERE
    T .DEPTNO in ('20','30')
GROUP BY
    T .DEPTNO

需求:将各个职业的姓名,用一行来展示

sql:

select t.job,listagg(t.ename,',') within group(order by t.ename)as name from emp t GROUP BY t.job
 

扫描二维码关注公众号,回复: 5456011 查看本文章

参考:https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions089.htm#SQLRF30030

猜你喜欢

转载自blog.csdn.net/weixin_40903194/article/details/84320758