做选厂比价页面的时候,期望根据日期段查询出有:询价单号,询价单件号集合,供应商集合 等字段的列表信息,供用户参考以明白应该对哪个询价单进行选厂。询价单件号集合需要将 询价单下的件号从列转成行,且用逗号相连。即
enqNo pn enqNo pn
20101201A08779001 387 20101201A08779001 387,432,450
20101201A08779001 432 转成 -》 20101201A08779002 002A0001-33,432
20101201A08779001 450
20101201A08779002 002A0001-33
20101201A08779002 432
从网上找了都是关于decode的方法实现的列转行,后来发现了用orcale的wmsys.wm_concat方法可以轻松的实现,下面的范例是网上找的:wmsys.wm_concat要10g以后才可以。
表结构:
1 A 1 B 1 C 2 A 2 B 3 C 3 F 4 D 转换后变成:
1 A,B,C 2 A,B 3 C,F 4 D
方法:
假设你的表结构是tb_name(id, remark),则语句如下: SELECT a.id, wm_concat (a.remark) new_result FROM tb_name a group by a.id