oracle 行列转换 (wm_concat)

转载: http://database.51cto.com/art/201010/231126.htm

 

 

个人心得:

常配合replace使用

 

select replace(wm_concat(r.role_name),',','+') from user_role  r

注:replace(param1, param2, param3) ; 将合并后的字段里,默认追加的逗号替换成加号

 

 

 

oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看。

shopping:

-----------------------------------------

u_id       goods            num

------------------------------------------

1                苹果                2

2                 梨子               5

1                 西瓜               4

3                 葡萄               1

3                香蕉                1

1               橘子                 3

=======================

想要的结果为:

--------------------------------

u_id          goods_sum

____________________

1              苹果,西瓜,橘子

2              梨子

3              葡萄,香蕉

---------------------------------

 
  1. select u_id, wmsys.wm_concat(goods) goods_sum  
  2.  
  3. from shopping  
  4.  
  5. group by u_id  

想要的结果2:

--------------------------------

u_id          goods_sum

____________________

1              苹果(2斤),西瓜(4斤),橘子(3斤)

2              梨子(5斤)

3              葡萄(1斤),香蕉(1斤)

---------------------------------

使用oracle wm_concat(column)函数实现:

 
  1. select u_id, wmsys.wm_concat(goods || '(' || num || '斤)' ) goods_sum  
  2.  
  3. from shopping  
  4.  
  5. group by u_id  
  6.  

你可能感兴趣的:(wm_concat)