Oracle中listagg函数的使用方法

33次阅读
没有评论

共计 1366 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍 Oracle 中 listagg 函数的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

listagg 函数的用法

这是一个 Oracle 的列转行函数:LISTAGG()

先看示例代码:

Sql 代码

with temp as( 
 select  China  nation , Guangzhou  city from dual union all 
 select  China  nation , Shanghai  city from dual union all 
 select  China  nation , Beijing  city from dual union all 
 select  USA  nation , New York  city from dual union all 
 select  USA  nation , Bostom  city from dual union all 
 select  Japan  nation , Tokyo  city from dual 
) 
select nation,listagg(city, ,) within GROUP (order by city) 
from temp 
group by nation

这是最基础的用法:

LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)

用法就像聚合函数一样,通过 Group by 语句,把每个 Group 的一个字段,拼接起来。

非常方便。

同样是聚合函数,还有一个高级用法:

就是 over(partition by XXX)

也就是说,在你不实用 Group by 语句时候,也可以使用 LISTAGG 函数:

Sql 代码

with temp as( 
 select 500 population,  China  nation , Guangzhou  city from dual union all 
 select 1500 population,  China  nation , Shanghai  city from dual union all 
 select 500 population,  China  nation , Beijing  city from dual union all 
 select 1000 population,  USA  nation , New York  city from dual union all 
 select 500 population,  USA  nation , Bostom  city from dual union all 
 select 500 population,  Japan  nation , Tokyo  city from dual 
) 
select population, 
 nation, 
 city, 
 listagg(city, ,) within GROUP (order by city) over (partition by nation) rank 
from temp

以上是“Oracle 中 listagg 函数的使用方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计1366字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)