一张表中根据某一字段相同值得另一字段的所有值拼接起来,组成一条新的语句
如下:
表a,有字段 x,y,z
x y z
1 name p
1 name w
1 name d
2 sex s
2 sex c
2 sex k
语句运行后变成的结果为:
字段1 字段2 字段3
1 name p,w,d
2 sex s,c,k
有哪位帮忙下,谢谢!!
[url]http://relive123-yahoo-com-cn.iteye.com/blog/693608[/url]
[code="sql"]
select y,wm_concat(z) from table_name group by y
[/code]
针对ORACLE数据库 一楼是正确的!
针对mysql,需要使用group_concat函数
[code="sql"]
select y,group_concat(z) from table_name group by y
[/code]
详细可参考[url]http://blog.csdn.net/catoop/article/details/8124561[/url]
至于sqlserver的你可以参考下[url]http://stackoverflow.com/questions/12559551/sql-server-equivalent-of-wm-concat-function[/url]
[quote]
有哪位帮忙下,谢谢!!
问题补充:1楼牛人弄出来了是单组的,即把出group by 单一字段的其他字段都加了起来,其实,我的是字段1和2都相同的,字段1和2照着写,只有字段3不同, 也只是字段3累加
[/quote]
[quote]
X Y Z
1 name p
1 name w
1 name c
2 sex c
2 sex s
2 sex k
[/quote]
[code="sql"]
select x,y,wm_concat(z), dbms_lob.substr(wm_concat(z)) from TEST group by x,y
[/code]
[quote]X Y WM_CONCAT(Z) DBMS_LOB.SUBSTR(WM_CONCAT(Z))
1 name (CLOB) p,w,c
2 sex (CLOB) c,s,k[/quote]
这里的CLOB里其实就是 p,w,c 和 c,s,k