当前位置:Gxlcms > 数据库问题 > oracle在group by时某列有多个值的拼接

oracle在group by时某列有多个值的拼接

时间:2021-07-01 10:21:17 帮助过:3人阅读

我们会发现这样会报错,因为name和age有多个值,这个时候我们就可以使用wm_concat()方法来解决。

select wm_concat(s.name),wm_concat(s.age),s.class from student s gruop by s.class;

但是这个写法又出现了一个新的问题,你会发现name和age这列的结果是

技术图片

只需要把wm_concat前面加一个to_char就好了,而且结果就是上面想要的结果。

select to_char(wm_concat(s.name)) as name,
to_char(wm_concat(s.age)) as age,
s.class
from student s
gruop by s.class;
---------------------
还有一个函数LISTAGG(‘参数一’,’参数二’),这个函数和wm_comcat的作用类似,第一个参数是字段,第二个参数是多个值之间的分隔符,但是用法有些不同,例子如下:

select listagg(s.name,‘-‘)within group(order by class) as name,
to_char(wm_concat(s.age)),
s.class
from student s
gruop by s.class;
---------------------
技术图片

来源:https://blog.csdn.net/yufeng1397/article/details/78672607

 

oracle在group by时某列有多个值的拼接

标签:char   alt   src   keyword   tail   href   key   order   tps   

人气教程排行