ORACLE 10g,如何将不同ID号的数据按ID顺序合并成一行 20

数据举例:表A:codeIDcontext011hh012dd013c,c021ww022e,e023tt查询出的结果应为:codeIDcontext011hhddc,c... 数据举例:
表A:
code ID context
01 1 hh
01 2 dd
01 3 c,c
02 1 ww
02 2 e,e
02 3 tt
查询出的结果应为:
code ID context
01 1 hhddc,c
02 1 wwe,ett
既按code分组,再按ID顺序将context合并为一行,在ORACLE 10g环境,我试了wm_concat函数,select wm_concat(context) from A group by code;发现不能按ID顺序合并,请高手指教!
展开
 我来答
卧看云起梦逍遥
2012-05-17 · TA获得超过341个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:181万
展开全部
用过程,先取出code集合,逐个处理code,将该code下的context按id顺序合并,写到表里。
另外,输出结果里面的ID没用了吧。
追问
group by code是可以取出code 集合,但是你说的‘将该code下的context按id顺序合并’这个怎么实现?我就卡在这了。因为像一楼那样select wm_concat(context) from A group by code
order by id;会报错:group by 命令没有正确结束。貌似concat函数没有按顺序合并的功能~~
追答
取出code 集合后,再逐个按code取得这个code下的纪录集合,将这个集合按id排序,用你的wm_concat合并,写到表里,这表里应该只有code和合并后的contex。
我的做法是分成几个步骤,不是一个查询语句就实现。
micro0369
2012-05-17 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4067万
展开全部
加一个排序字段呢?

select wm_concat(context) from A group by code
order by id;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaoxuhong888
2012-05-22 · 超过19用户采纳过TA的回答
知道答主
回答量:127
采纳率:100%
帮助的人:41.7万
展开全部
可以先排序
SQL> with a as (select 01 code, 2 id, 'hh' context
2 from dual
3 union all
4 select 01 code, 1 id, 'dd' context
5 from dual
6 union all
7 select 01 code, 3 id, 'c,c' context
8 from dual
9 union all
10 select 02 code, 1 id, 'ww' context
11 from dual
12 union all
13 select 02 code, 3 id, 'e,e' context
14 from dual
15 union all
16 select 02 code, 2 id, 'tt' context from dual)
17 select t.code, wm_concat(t.context)
18 from (select a.code code, a.id id, a.context context
19 from a
20 order by a.code, a.id) t
21 group by t.code;

CODE WM_CONCAT(T.CONTEXT)
---------- --------------------------------------------------------------------------------
1 dd,hh,c,c
2 ww,tt,e,e
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenxingzhen00
2012-05-28 · TA获得超过328个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:204万
展开全部
自己编个字符串求和的函数吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式