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

来源:互联网 发布:招聘seo主管 编辑:程序博客网 时间:2024/06/07 22:25

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

方法一:

有如下一张表。

表tableidc1c211小明21老张32小王42张三52李四





执行sql语句如下:

[html] view plain copy
  1. SELECT c1, SUBSTR (MAX (SYS_CONNECT_BY_PATH (c2, ',')), 2) NAME  
  2.     FROM (SELECT c1, c2, rn, LEAD (rn) OVER (PARTITION BY c1 ORDER BY rn) rn1  
  3.             FROM (SELECT c1, c2, ROW_NUMBER () OVER (ORDER BY c2) rn  
  4.                     FROM table))  
  5. START WITH rn1 IS NULL  
  6. CONNECT BY rn1 = PRIOR rn  
  7. GROUP BY c1;  
结果如下:

c1c21小明,老张2小王,张三,李四方法二:适用于oracle 10g

[sql] view plain copy
  1.  SELECT c1, wm_concat (c2) AS name  
  2.  FROM table  
  3. GROUP BY c1;  

结果如下:

c1c21小明,老张2小王,李四,张三以上方法都有个缺点,连出来的数据顺序是乱的。

参考资料:http://blog.csdn.net/lemonran/article/details/7012568

阅读全文
0 0
原创粉丝点击