当前位置: 代码迷 >> Oracle开发 >> 字符串联如何实现,请大师进来多谢
  详细解决方案

字符串联如何实现,请大师进来多谢

热度:18   发布时间:2016-04-24 06:54:04.0
字符串联怎么实现,请大师进来谢谢
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
  相关解决方案