实现字段合并
使用oraclewm_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 葡萄,香蕉 ---------------------------------------- select u_id, wmsys.wm_concat(goods) goods_sum from shopping group by u_id 解析:使用wm_concat之后,各个值之间用逗号自动隔开,可以结合replace函数把逗号换成其他符号,如: select replace(wm_concat(goods),',','|') from shopping;
与||合用的情况
想要的结果: ---------------------------------------- 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
这里有关于连接符 || 的介绍:点击打开链接
扩展
案例:我要写一个视图,类似 create or replace view as select 字段1, 字段2...字段50 from tablename 基表有50多个字段,要是靠手工写太麻烦了, 有没有什么简便的方法? 当然有了,看我如果应用wm_concat来让这个需求变简单 select 'create or replace view as select '|| wm_concat(column_name) || ' from dept ' from user_tab_columns where table_name='DEPT';