ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于wmsys.wm_concat()的问题

关于wmsys.wm_concat()的问题

原创 Linux操作系统 作者:rainlover 时间:2010-10-17 00:24:13 0 删除 编辑
关于wmsys.wm_concat()的问题

在使用wmsys.wm_concat()处理如下数据时:
ID                     内容              序号
------------------------------------------------------
001                            1.开始             1
001                            2.发展             2
001                            3.高潮             3
001                            4.结局             4
002                            1.开始             1
002                            2.发展             2
002                            3.高潮             3
002                            4.结局             4

希望的结果是
ID                               内容
-----------------------------------------------------------
001                            1.开始,2.发展,3,高潮,4.结局
002                            1.开始,2.发展,3,高潮,4.结局
使用的SQL是:
select id,wmsys.wm_concat(内容) from table
group by id
出来的结果是:
ID                               内容
-----------------------------------------------------------
001                            1.开始,3,高潮,2.发展,4.结局
002                            4.结局,1.开始,2.发展,3,高潮
也就是乱序

网上查的结果是:10G以后 ORACLE不保证group by后的数据是有序的

期待如何能解决上述问题
================
Try!

select  id,
        max(content)
from
(select id,
        wmsys.wm_concat(内容) over(partition by id order by 序号) content
  from t4)
group by id;
========
用sys_connect_by_path结合分析函数的order by可以实现有序

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11320622/viewspace-676081/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-08

  • 博文量
    35
  • 访问量
    61884