oracle 把一张表中的某字段的多条记录用逗号连接

 


 oracle 把一张表中的某字段的多条记录用逗号连接,特别适用于记录个数不固定的表。

 

方法一:

有如下一张表。

 

表table
idc1c2
11小明
21老张
32小王
42张三
52李四
i

 

 

 

 

 

 

 

执行sql语句如下:

SELECT c1, SUBSTR (MAX (SYS_CONNECT_BY_PATH (c2, ',')), 2) NAME
    FROM (SELECT c1, c2, rn, LEAD (rn) OVER (PARTITION BY c1 ORDER BY rn) rn1
            FROM (SELECT c1, c2, ROW_NUMBER () OVER (ORDER BY c2) rn
                    FROM table))
START WITH rn1 IS NULL
CONNECT BY rn1 = PRIOR rn
GROUP BY c1;

 

结果如下:

c1c2
1小明,老张
2小王,张三,李四

 

方法二:适用于oracle 10g

 SELECT c1, wm_concat (c2) AS name
 FROM table
GROUP BY c1;

 

结果如下:

c1c2
1小明,老张
2小王,李四,张三

 

以上方法都有个缺点,连出来的数据顺序是乱的。

参考资料:http://blog.csdn.net/winternight/article/details/6889284

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值