列数据
pid userid
1 0000
1 0001
1 0002
想要得到的结果
pid userid
1 0000,0001,0002
方法一:
函数wm_concat()
select t.pid , wm_concat(t.userid) from oraceltable
group by t.id
存在问题 :版本为12G以上的该方法会出现乱码问题
替代函数为 listagg
方法二:
函数listagg(userid,’,’)within group (order by )
select id ,listagg(userid,’,’) within group(order by username) zhuanuserid from oraceltable group by id、
listagg(userid,’,’); userid要转置的列名 ;
within group(order by username); username 排序的列名;
zhuanuserid ; 是转置后的列名;
可能存在问题: 出现乱码问题;
解决方案: to_char 一下
例如: listagg(to_char(userid),’,’)