listagg实现列转行 oracle

存在同一个员工有多个办公地址的情况
如:
select id,bgdz from yg;
id bgdz
111 北京
111 上海
123 天津
124 南昌
123 北京

其中id是员工编号,一个员工一个员工编号,bgdz是办公地址,因为存在身兼多职的情况,所以一个员工可能有多个部门对应多个办公地区

select id, listagg(bgdz, ';') within group(order by bgdz) as dz
  from yg
  group by id ;

其中’;‘是分隔符,可以按需要修改,不设置的话默认是’,'英文逗号。
order by 是按照指定的字段进行排序,也可以用其他字段,排序字段不需要select出来
如 id为111的员工,排序后是
id dz
111 北京;上海

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值