您的位置:首页 > 其它

wmsys.wm_concat函数【转帖】

2011-02-24 11:10 127 查看
公司网络给封了,再三申请下给开了网页的快照功能,连贴的东西都是纯文本无格式的,还得手动调格式,~~~郁闷

wmsys.wm_concat这个函数应该是Oracle数据库里的函数,暂时先将从网络上搜来的文章放在这里吧,等以后用得着了看看。
今天才发现了wmsys.wm_concat这个有趣有用的函数,它的作用是以','链接字符。

SQL> create table idtable (id number,name varchar2(30));
Table created

SQL> insert into idtable values(10,'ab');
1 row inserted

SQL> insert into idtable values(10,'bc');
1 row inserted

SQL> insert into idtable values(10,'cd');
1 row inserted

SQL> insert into idtable values(20,'hi');
1 row inserted

SQL> insert into idtable values(20,'ij');
1 row inserted

SQL> insert into idtable values(20,'mn');
1 row inserted

SQL> select * from idtable;

ID NAME

---------- ------------------------------

10 ab

10 bc

10 cd

20 hi

20 ij

20 mn

6 rows selected

SQL> select id,wmsys.wm_concat(name) name from idtable
2 group by id;

ID NAME

---------- --------------------------------------------------------------------------------

10 ab,bc,cd
20 hi,ij,mn

SQL> select id,wmsys.wm_concat(name) over (order by id) name from idtable;
ID NAME

---------- --------------------------------------------------------------------------------

10 ab,bc,cd

10 ab,bc,cd

10 ab,bc,cd

20 ab,bc,cd,hi,ij,mn

20 ab,bc,cd,hi,ij,mn

20 ab,bc,cd,hi,ij,mn

6 rows selected

SQL> select id,wmsys.wm_concat(name) over (order by id,name) name from idtable;

ID NAME
---------- --------------------------------------------------------------------------------

10 ab

10 ab,bc

10 ab,bc,cd

20 ab,bc,cd,hi

20 ab,bc,cd,hi,ij

20 ab,bc,cd,hi,ij,mn

6 rows selected
个人觉得这个用法比较有趣.

SQL> select id,wmsys.wm_concat(name) over (partition by id) name from idtable;

ID NAME
---------- --------------------------------------------------------------------------------

10 ab,bc,cd

10 ab,bc,cd

10 ab,bc,cd

20 hi,ij,mn

20 hi,ij,mn

20 hi,ij,mn

6 rows selected

SQL> select id,wmsys.wm_concat(name) over (partition by id,name) name from idtable;

ID NAME
---------- --------------------------------------------------------------------------------

10 ab

10 bc

10 cd

20 hi

20 ij

20 mn

6 rows selected
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: