日期:2014-05-17  浏览次数:21023 次

字符串联怎么实现,请大师进来谢谢
temp_a

staff_name  number
张三          289
张三          145
张三          876
张三          908
李四          123
李四          324
李四          556
...         ...

想Insert temp_b

staff_name  number
张三          289//145//876//908
李四          123//324//556
..          ..

大致意思是把A表中的NUMBER进行串联 插入B表,请问大神该如何实现? staff_name 拥有的Number数是不确定的,谢谢

------解决方案--------------------
引用:
temp_a

staff_name  number
张三          289
张三          145
张三          876
张三          908
李四          123
李四          324
李四          556
...         ...

想Insert temp_b

staff_name  number
张三          289//145//876//908
李四          123//324//556
..          ..

大致意思是把A表中的NUMBER进行串联 插入B表,请问大神该如何实现? staff_name 拥有的Number数是不确定的,谢谢


wm_concat在9i下不适用的,在9i中如下sql:


SELECT staff_name, LTRIM(MAX(SYS_CONNECT_BY_PATH("number", '//')), '//') "number"
  FROM (SELECT "number", staff_name, ROW_NUMBER() OVER(PARTITION BY staff_name ORDER BY "number" DESC) RN
          FROM temp_a)
 START WITH RN = 1
CONNECT BY RN - 1 = PRIOR RN
       AND staff_name = PRIOR staff_name
 GROUP BY staff_name;

STAFF_NAME number
---------- -------------------------------------------------------------------
李四       556//324//123
张三       908//876//289//145