写自己在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会报错
目前只能写出这个语句了
请教一个sql语句,试了好久没成功
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
- bigbone 2008-09-11 11:10关注
可以写个存储过程,将某个MainID的内容按OrderID拼接成一句话,在sql中用游标调用该存储过程。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器