怎么用listagg函数分组实现列转行
小编给大家分享一下怎么用listagg函数分组实现列转行,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
成都创新互联-专业网站定制、快速模板网站建设、高性价比中宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式中宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖中宁地区。费用合理售后完善,10多年实体公司更值得信赖。
listagg是Oracle 11.2中新增的函数,listagg可以对order by子句中指定的每个组内的数据进行排序,然后连接这些列的值。以下是简单的应用举例:
SELECT deptno, listagg(ename, ',') WITHIN GROUP(ORDER BY ename) AS employees FROM scott.emp GROUP BY deptno;
可以在livesql.oracle.com云平台中体验:
再看以下的查询,包含了重复值:
select d.dname, listagg(e.job, ',') within group(order by e.job) jobs from scott.dept d, scott.emp e where d.deptno = e.deptno group by d.dname;
Oracle 19C做了一个小改进,可以方便的对转换结果去重,支持distinct关键字:
select d.dname, listagg(distinct e.job, ',') within group(order by e.job) jobs from scott.dept d, scott.emp e where d.deptno = e.deptno group by d.dname;
看完了这篇文章,相信你对“怎么用listagg函数分组实现列转行”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
网页标题:怎么用listagg函数分组实现列转行
网站地址:http://scyanting.com/article/ihjsde.html