这篇文章主要介绍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函数的使用方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!