160519、Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法


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的一个字段,拼接起来。

实战sql:

select listagg(t.SPURIOUS_DESC, ';') within GROUP(order by t.spurious_desc) SPURIOUS_DESC
from zc_tr_appraise t
where t.banknote_id = '1';


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM