首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

oracle 列转行函数 WMSYS.WM_CONCAT 排序不规则处置

2013-10-22 
oracle 列转行函数 WMSYS.WM_CONCAT排序不规则处理需要将每个产品进行汇总,通过ichartjs进行展示,图表中需

oracle 列转行函数 WMSYS.WM_CONCAT 排序不规则处理

需要将每个产品进行汇总,通过ichartjs进行展示,图表中需要数据的顺序是:

?

?


?

突然想,进行排序后拼接呢?


?

跟上面一样,都不行。最后不用分组来处理,发现结果能实现排序,不过就是记录多了点:


?

怎么办? ..........哦...........外围加个查询语句,来个分组取最大值,怎么样?

?

通过oracle 列转行函数 WMSYS.WM_CONCAT创建语句如下:


?

到此,通过oracle 列转行函数 WMSYS.WM_CONCAT进行排序结束,结果令人满意。

总结:

1. 记录下来,给以后的自己和需要的人来点灵感,遇到问题后要一步步的分析逻辑,哪怕第一个主意不能解决问题,关键要开动脑筋想。

2. oracle的函数不一定能解决问题,有时候很多技巧加很多函数才是解决方案。

3. 注意,如果在产品根据分组的条件(本列子中是将数据分四组,是按照时间分组的)不能确定,或者会不规则,就不能使用这个方案来处理,比如分组的时间中间有一个断档了,结果就不正确:


oracle 列转行函数 WMSYS.WM_CONCAT  排序不规则处置
?

看看,结果永远是下面这个:
oracle 列转行函数 WMSYS.WM_CONCAT  排序不规则处置
?

其实我们要的是这样的(注意最后一排逗号中间的空格):

   NAMECOUNTER1产品1145,192,198,180,167,1662产品2135,210,180,210,188,1643产品3198,210,198,198,,165

?遇到这种情况,就可能需要程序来处理。我目前还没有找到oracle的解决方案。

?

?

?

?

?

?

?

热点排行