怎么用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云平台中体验:

怎么用listagg函数分组实现列转行

再看以下的查询,包含了重复值:

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;

怎么用listagg函数分组实现列转行

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函数分组实现列转行”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


新闻名称:怎么用listagg函数分组实现列转行
转载来源:http://lszwz.com/article/ihjsde.html

其他资讯

售后响应及时

7×24小时客服热线

数据备份

更安全、更高效、更稳定

价格公道精准

项目经理精准报价不弄虚作假

合作无风险

重合同讲信誉,无效全额退款