您的位置:首页 > 数据库 > Oracle

Oracle函数

2015-03-18 17:17 204 查看
1.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: