首页 > 数据库技术 > 详细

【SQL查询】合并行_listagg

时间:2020-01-20 18:08:09      阅读:75      评论:0      收藏:0      [点我收藏+]

listagg

1. 语法:

  listagg(measure_expr, ‘delimiter‘) within group (order by expr) [over (partition by expr)]

2. 功能说明:

  measure_expr:任何基于列的表达式

  delimiter:分割符

  order by expr:决定被拼接的顺序

  over (partition by expr): 表中所有内容按照expr进行分区处理

3. 【示例1】:

create or replace view v 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 v.population, v.nation, listagg(v.city, ,) within group (order by city) over (partition by nation) as rank from v;

  结果:

  技术分享图片

 

 

  【示例2】:

  

create or replace view v 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 v.nation, listagg(v.city, ,) within group (order by city) as rank from v group by nation;

技术分享图片

 

 

:listagg在这里启动汇总的作用。sum将数值结果加在一起,而listagg是把字符串连接在一起。

 

 

 

【SQL查询】合并行_listagg

原文:https://www.cnblogs.com/zhuhaiying/p/12218517.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!