问题描述
写自己在pl/sql中写过函数实现过,但是效率很低下,数据量一大,直接导致weblogic等待状态要实现的功能是 多条数据,有个相同的主ID,有字段 a, b, c首先将abc散列数据合并成一列,再将多行数据根据ID,合并成一行具体如下:OrderID MainID A B C1 1 你 好 啊2 1 朋 友 !3 2 我 很 好4 2 谢 谢 。要求最后得到两个字段:MainID result1 你好啊朋友!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 = 1connect by rn - 1 = prior rn and mainid = prior mainid问题补充:如果字段中查出有 特殊符号比如:/ 等,sys_connect_by_path会报错目前只能写出这个语句了
解决方案
可以写个存储过程,将某个MainID的内容按OrderID拼接成一句话,在sql中用游标调用该存储过程。
解决方案二:
把你写的贴出来,看看哪里可以改进