Oracle合并多列到一行 wm_concat

Oracle在group by后合并表的某一列,以逗号隔开
或者合并整个表中的一列
函数为wm_concat
用法如下:
把表中一列合并成一行
select wm_concat(songid) from album_song;

把结果里的逗号替换成"|"
select replace(wm_concat(songid),',','|') from album_song;

效果3:按ID分组合并name
select albumid,wm_concat(songid) name from album_song group by albumid;


oracle 11g后又新增了一个函数listagg,功能类似
select albumid,listagg(songid,',') within group (order by albumid) albumid from album_song where albumid!=1 group by albumid

你可能感兴趣的:(oracle,wm_concat,listagg,合并多行)