关于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后的数据是有序的
期待如何能解决上述问题
================
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;
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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11320622/viewspace-676081/