http://database.51cto.com/art/201010/231126.htm
oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_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 from shopping 3 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 from shopping 3 group by u_id
我在itpub的发帖:[PL/SQL] 大家来研究sql:不同公司给同一个客商支付|结贴|
2012-11-30 12:59:36 更新
1 select 收款单位名称,付款单位数目,wmsys.wm_concat(付款单位||'(' ||付款总金额 || '元'||','||付款次数||'次)') 详情 2 from( 3 select unitname "付款单位", 4 custcode "收款单位编码", 5 custname "收款单位名称", 6 sum_bbye "付款总金额", 7 cnt1 "付款次数", 8 cnt2 "付款单位数目" 9 from (select substr(bd_corp.unitname,3,2) unitname, 10 bd_cubasdoc.custcode, 11 bd_cubasdoc.custname, 12 sum(arap_djfb.bbye) sum_bbye, 13 count(bd_corp.unitcode) cnt1, 14 count(bd_corp.unitname) over(partition by bd_cubasdoc.custname) cnt2 15 from bd_cubasdoc, 16 arap_djfb, 17 bd_cumandoc, 18 arap_djzb, 19 bd_corp 20 where arap_djfb.ksbm_cl = bd_cumandoc.pk_cumandoc 21 and bd_cumandoc.pk_cubasdoc = bd_cubasdoc.pk_cubasdoc 22 and arap_djfb.vouchid = arap_djzb.vouchid 23 and bd_corp.pk_corp = arap_djzb.dwbm 24 and arap_djfb.payflag in ('1', '2') 25 and arap_djfb.dr = '0' 26 group by unitname, 27 bd_cubasdoc.custname, 28 bd_cubasdoc.custcode) 29 where cnt2 >= 2) 30 group by 收款单位名称,付款单位数目 31 order by 收款单位名称