数据库应用:分组合并数据

Oracle分组合并数据的方法总结 wm_concat() 和 listagg()

原文链接:Oracle分组合并数据的方法总结 wm_concat() 和 listagg()_oracle 分组合并-CSDN博客

--课程表:学号  课程号  成绩
select * from sc;

oracle 11g分组合并数据的方法一: wm_concat() 

--第一种方法: 使用 wm_concat()方法进行合并,默认以逗号分隔
--学生选了哪些课程
select sid,wm_concat(cid)
from sc
group by sid;

--如果不想使用逗号分隔,可以替换成其他字符
select sid,replace(wm_concat(cid),',','/')
from sc
group by sid;

oracle 11g分组合并数据的方法二:listagg()

注意: 需要加上    within group(order by ...)

--第二种方法: 使用listagg()方法,可以指定分隔的字符
--学生选了哪些课程
select sid,listagg(cid,',') within group(order by cid) as sid_cid
from sc
group by sid;

结果同wm_concat()第一种方法

----如果需要替换分隔字符,直接指定其他字符即可
select sid,listagg(cid,'/') within group(order by cid) as sid_cid
from sc
group by sid;

结果同wm_concat()第一种方法指定其他字符

posted @ 2023-10-14 00:02  七月安生里  阅读(569)  评论(0编辑  收藏  举报