请教一个sql语句,试了好久没成功

写自己在pl/sql中写过函数实现过,但是效率很低下,数据量一大,直接导致weblogic等待状态



要实现的功能是 多条数据,有个相同的主ID,有字段 a, b, c首先将abc散列数据合并成一列,再将多行数据根据ID,合并成一行

具体如下:

OrderID MainID A B C

1 1 你 好 啊

2 1 朋 友 !

3 2 我 很 好

4 2 谢 谢 。



要求最后得到两个字段:





MainID result

1 你好啊朋友!

2 我很好谢谢。


问题补充:
select mainid, substr(max(sys_connect_by_path(aa, ',')), 2) phnum

from (select a.*,

row_number() over(partition by mainid order by mainid) rn

from (select mainid, a|| ',' || b||','||c as aa

from cpd_bagcheckdtl) a)

group by mainid

start with rn = 1

connect by rn - 1 = prior rn

and mainid = prior mainid
问题补充:
如果字段中查出有 特殊符号比如:/ \等,sys_connect_by_path会报错

目前只能写出这个语句了

2个回答

可以写个存储过程,将某个MainID的内容按OrderID拼接成一句话,在sql中用游标调用该存储过程。

把你写的贴出来,看看哪里可以改进

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问