合并列有很多方法,如聚焦函数、自定义函数利用游标分组、ROW_NUMBER() and SYS_CONNECT_BY_PATH 、还有10g后的wm_concat、及11G后新增函数..
下面验证ROW_NUMBER() and SYS_CONNECT_BY_PATH 用法
---------- --------------------------------------------------
1 anbob,weejar
2 sina,google,yahoo
下面验证ROW_NUMBER() and SYS_CONNECT_BY_PATH 用法
anbob@ANBOB> create table test_concat(groupno int,name varchar2(10));
Table created.
anbob@ANBOB> insert into test_concat values(1,'anbob');
1 row created.
anbob@ANBOB> insert into test_concat values(1,'weejar');
1 row created.
anbob@ANBOB> insert into test_concat values(2,'sina');
1 row created.
anbob@ANBOB> insert into test_concat values(2,'yahoo');
1 row created.
anbob@ANBOB> insert into test_concat values(2,'google');
1 row created.
anbob@ANBOB> commit;
Commit complete.
anbob@ANBOB> select * from test_concat;
GROUPNO NAME
---------- ------------------------------
1 anbob
1 weejar
2 sina
2 yahoo
2 google
anbob@ANBOB> select groupno,ltrim(max(SYS_CONNECT_BY_PATH(name,',')),',') conc
from (select groupno,name ,
row_number() over(partition by groupno order by name) cur,
row_number() over(partition by groupno order by name) -1 pre
from test_concat)
group by groupno
connect by prior cur=pre and groupno= prior groupno
start with cur=1
;
GROUPNO CONC
---------- --------------------------------------------------
1 anbob,weejar
2 google,sina,yahoo
---10g 后有的方法
anbob@ANBOB> select groupno,wm_concat(name) conc
2 from test_concat
3 group by groupno;
---------- --------------------------------------------------
1 anbob,weejar
2 sina,google,yahoo
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




