Oracle中listagg函数的使用方法
这篇文章主要介绍Oracle中listagg函数的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
listagg函数的用法
这是一个Oracle的列转行函数:LISTAGG()
先看示例代码:
Sql代码
withtempas(select'China'nation,'Guangzhou'cityfromdualunionallselect'China'nation,'Shanghai'cityfromdualunionallselect'China'nation,'Beijing'cityfromdualunionallselect'USA'nation,'NewYork'cityfromdualunionallselect'USA'nation,'Bostom'cityfromdualunionallselect'Japan'nation,'Tokyo'cityfromdual)selectnation,listagg(city,',')withinGROUP(orderbycity)fromtempgroupbynation
这是最基础的用法:
LISTAGG(XXX,XXX)WITHINGROUP(ORDERBYXXX)
用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。
非常方便。
同样是聚合函数,还有一个高级用法:
就是over(partition by XXX)
也就是说,在你不实用Group by语句时候,也可以使用LISTAGG函数:
Sql代码
withtempas(select500population,'China'nation,'Guangzhou'cityfromdualunionallselect1500population,'China'nation,'Shanghai'cityfromdualunionallselect500population,'China'nation,'Beijing'cityfromdualunionallselect1000population,'USA'nation,'NewYork'cityfromdualunionallselect500population,'USA'nation,'Bostom'cityfromdualunionallselect500population,'Japan'nation,'Tokyo'cityfromdual)selectpopulation,nation,city,listagg(city,',')withinGROUP(orderbycity)over(partitionbynation)rankfromtemp
以上是“Oracle中listagg函数的使用方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。