------------------------------------------
1 苹果 2
2 梨子 5
1 西瓜 4
3 葡萄 1
3 香蕉 1
1 橘子 3
=======================
想要的结果为:
--------------------------------
u_id goods_sum
____________________
1 苹果,西瓜,橘子
2 梨子
3 葡萄,香蕉
---------------------------------
select u_id, wmsys.wm_concat(goods) goods_sum
from shopping
group by u_id
想要的结果2:
--------------------------------
u_id goods_sum
____________________
1 苹果(2斤),西瓜(4斤),橘子(3斤)
2 梨子(5斤)
3 葡萄(1斤),香蕉(1斤)
---------------------------------
使用oracle wm_concat(column)函数实现:
select u_id, wmsys.wm_concat(goods || '(' || num || '斤)' ) goods_sum
from shopping
group by u_id
但是这个函数有虚拟内存,超过该虚拟内存则报错,即字段过长,在出现该情况时,需要把wm_concat函数转化,变成
trim(xmlagg(xmlelement(content, (需要列变行的字段) || ',' ) order by (需要列变行的字段) ).extract('//text()').getclobval())