您的位置:首页 > 数据库 > Oracle

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

2016-05-20 15:40 651 查看
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';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: