oracle语句中如何把一列的值合并为一个值,用逗号隔开?

2024-12-30 14:19:35
推荐回答(3个)
回答1:

所有版本的oracle都可以使用wm_concat()()函数 。例:select wm_concat(name) as name from user;

但如果是oracle11g,使用listagg() within group()函数 。例:select listagg(name, ‘,’) within group( order by name) as name from user;

使用wm_Concat:

使用ListAgg:

结果:

回答2:

所有版本的oracle都可以使用select wm_concat(name) as name from user;
但如果是oracle11g,使用select listagg(name, ',') within group( order by name) as name from user;
效率更高,官方也更推荐这种写法。

回答3:

select wm_concat(name) name from user;--10g写法
select listagg(name,',') within group (order by name) name from user;--11g写法