首页 > 其他 > 详细

关于wm_concat(把一列的值,通过','进行分隔后,合并成一个值进行显示)

时间:2020-03-17 11:19:25      阅读:143      评论:0      收藏:0      [点我收藏+]

直接上原数据

技术分享图片

 

 

现在想按照schoolid分组,把对应的classid整理罗列出来

oracle中内置了一个神奇的函数wm_concat(列名) 这个神奇的函数,可以把列值用“,”分隔开,并且是显示成一行

 我们先单独看看这个函数怎么玩的,直接上栗子

技术分享图片

 

 发现返回了CLOB这样一个类型的东东,后面研究发现,这个主要是由于oracle版本不一样,导致的

部分版本返回的类型是varchar的,部分版本的类型是CLOB的(具体哪些版本  这个自己实操的时候可以留意一下)

为了使他们兼容,考虑使用to_char这个函数进行转换一下

技术分享图片

 

 ok 成功了  他已经把一列的数据以‘,‘的形式合并成一个字段值了

那这时候,和我们要的结果就很接近了

再来看看我们的需求,按照schoolid分组进行合并显示

技术分享图片

 

 好了  这样我们的效果就可以达到了

 

现在我们来比较一下wm_concat这个函数和pivot这个函数的区别

wm_concat:

他是把一列的值,通过‘,‘进行分隔后,合并成一个值进行显示的

pivot:

他是把一列的值,当成字段值进行显示的

 

关于wm_concat(把一列的值,通过','进行分隔后,合并成一个值进行显示)

原文:https://www.cnblogs.com/dudu485/p/12509383.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!