把多条记录合并成一条记录

SQL>
SQL> create table IDTABLE
2 (
3    id number,
4    val varchar2(20)
5 )
6 ;

Table created

SQL>
SQL> insert into IDTABLE (ID, VAL)
2 values (10, 'abc');

1 row inserted
SQL> insert into IDTABLE (ID, VAL)
2 values (10, 'abc');

1 row inserted
SQL> insert into IDTABLE (ID, VAL)
2 values (10, 'def');

1 row inserted
SQL> insert into IDTABLE (ID, VAL)
2 values (10, 'def');

1 row inserted
SQL> insert into IDTABLE (ID, VAL)
2 values (20, 'ghi');

1 row inserted
SQL> insert into IDTABLE (ID, VAL)
2 values (20, 'jkl');

1 row inserted
SQL> insert into IDTABLE (ID, VAL)
2 values (20, 'mno');

1 row inserted
SQL> insert into IDTABLE (ID, VAL)
2 values (20, 'mno');

1 row inserted

SQL> select id,val from idtable;

        ID VAL
---------- --------------------
        10 abc
        10 abc
        10 def
        10 def
        20 ghi
        20 jkl
        20 mno
        20 mno

8 rows selected

SQL> commit;

Commit complete

SQL>
SQL> SELECT ID, WMSYS.WM_CONCAT(VAL) AS ENAMES
2    FROM IDTABLE
3   GROUP BY ID;

        ID ENAMES
---------- --------------------------------------------------------------------------
        10 abc,abc,def,def
        20 ghi,jkl,mno,mno

SQL>
SQL> SELECT ID, WMSYS.WM_CONCAT(DISTINCT VAL) AS ENAMES
2    FROM IDTABLE
3   GROUP BY ID
4   ORDER BY ID;

        ID ENAMES
---------- --------------------------------------------------------------------------
        10 abc,def
        20 ghi,jkl,mno

SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26829342/viewspace-744845/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26829342/viewspace-744845/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值