oracle拼接数据

love灬少 2013-11-11 06:06:02
这样是数据怎么拼接成两条记录,CRM→旧方案→薪酬与考评管理→营销薪酬报表→自定义报表管理→新增 和CRM→考核与薪酬→综合报表→自定义报表→新增
...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oracle_jsnt 2013-11-13
  • 打赏
  • 举报
回复
个人觉得楼主写一个后台方法,然后输出记录。 思路: 找到FID=0的记录合集, 然后循环(循环内以当前记录的id作为下一条的fid,直到找不到记录,拼接descirbe字段信息,跳出循环) 最终输出想要的记录集。
love灬少 2013-11-12
  • 打赏
  • 举报
回复
引用 3 楼 qq304213346 的回复:
给个例子。wm_concat 函数。 with tableA as ( select 1 aid,'小明' code from dual union all select 2 aid,'小红' code from dual union all select 3 aid,'小忆' code from dual ),tableB as ( select 1 bid,1 aid,'数学' km,100 fs from dual union all select 2 bid,1 aid,'语文' km,99 fs from dual union all select 3 bid,1 aid,'英语' km,88 fs from dual union all select 4 bid,2 aid,'数学' km,77 fs from dual union all select 5 bid,2 aid,'语文' km,66 fs from dual union all select 6 bid,2 aid,'英语' km,55 fs from dual ),tableC as ( select 1 cid,1 aid,'补数学课' bk,5 c from dual union all select 2 cid,1 aid,'补语文' bk,5 c from dual union all select 3 cid,1 aid,'补英语' bk,3 c from dual union all select 4 cid,2 aid,'补数学课' bk,1 c from dual union all select 5 cid,2 aid,'补语文' bk,2 c from dual union all select 6 cid,2 aid,'补英语' bk,5 c from dual ) SELECT tableA.aid,tableA.code,wm_concat(tableB.km||'('||tableB.fs||'),'||tableC.bk||'('||tableC.c||')') from tableA,tableB,tableC WHERE tableA.aid=tableB.aid AND tableA.aid=tableC.aid AND tableB.bid=tableC.cid GROUP BY tableA.aid,tableA.code
感觉不是我要的结果
请叫我-雷人 2013-11-12
  • 打赏
  • 举报
回复
给个例子。wm_concat 函数。 with tableA as ( select 1 aid,'小明' code from dual union all select 2 aid,'小红' code from dual union all select 3 aid,'小忆' code from dual ),tableB as ( select 1 bid,1 aid,'数学' km,100 fs from dual union all select 2 bid,1 aid,'语文' km,99 fs from dual union all select 3 bid,1 aid,'英语' km,88 fs from dual union all select 4 bid,2 aid,'数学' km,77 fs from dual union all select 5 bid,2 aid,'语文' km,66 fs from dual union all select 6 bid,2 aid,'英语' km,55 fs from dual ),tableC as ( select 1 cid,1 aid,'补数学课' bk,5 c from dual union all select 2 cid,1 aid,'补语文' bk,5 c from dual union all select 3 cid,1 aid,'补英语' bk,3 c from dual union all select 4 cid,2 aid,'补数学课' bk,1 c from dual union all select 5 cid,2 aid,'补语文' bk,2 c from dual union all select 6 cid,2 aid,'补英语' bk,5 c from dual ) SELECT tableA.aid,tableA.code,wm_concat(tableB.km||'('||tableB.fs||'),'||tableC.bk||'('||tableC.c||')') from tableA,tableB,tableC WHERE tableA.aid=tableB.aid AND tableA.aid=tableC.aid AND tableB.bid=tableC.cid GROUP BY tableA.aid,tableA.code
love灬少 2013-11-11
  • 打赏
  • 举报
回复
引用 1 楼 chenjiang89 的回复:
wm_concat函数在12c中已经废弃,建议楼主用listagg,更灵活方便
怎么用
大话EPM 2013-11-11
  • 打赏
  • 举报
回复
wm_concat函数在12c中已经废弃,建议楼主用listagg,更灵活方便

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧