Oracle中listagg函数的使用方法
生活随笔
收集整理的這篇文章主要介紹了
Oracle中listagg函数的使用方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這篇文章主要介紹Oracle中listagg函數的使用方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
listagg函數的用法
這是一個Oracle的列轉行函數:LISTAGG()
先看示例代碼:
Sql代碼
withtempas( select'China'nation,'Guangzhou'cityfromdualunionall select'China'nation,'Shanghai'cityfromdualunionall select'China'nation,'Beijing'cityfromdualunionall select'USA'nation,'NewYork'cityfromdualunionall select'USA'nation,'Bostom'cityfromdualunionall select'Japan'nation,'Tokyo'cityfromdual ) selectnation,listagg(city,',')withinGROUP(orderbycity) fromtemp groupbynation
這是最基礎的用法:
LISTAGG(XXX,XXX)WITHINGROUP(ORDERBYXXX)
用法就像聚合函數一樣,通過Group by語句,把每個Group的一個字段,拼接起來。
非常方便。
同樣是聚合函數,還有一個高級用法:
就是over(partition by XXX)
也就是說,在你不實用Group by語句時候,也可以使用LISTAGG函數:
Sql代碼
withtempas( select500population,'China'nation,'Guangzhou'cityfromdualunionall select1500population,'China'nation,'Shanghai'cityfromdualunionall select500population,'China'nation,'Beijing'cityfromdualunionall select1000population,'USA'nation,'NewYork'cityfromdualunionall select500population,'USA'nation,'Bostom'cityfromdualunionall select500population,'Japan'nation,'Tokyo'cityfromdual ) selectpopulation, nation, city, listagg(city,',')withinGROUP(orderbycity)over(partitionbynation)rank fromtemp
總結
以上是生活随笔為你收集整理的Oracle中listagg函数的使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java动态代理之InvocationH
- 下一篇: VMware VCSA 6.7资源池和v