Sqlserver 中如何通过group by 实现分组合并
--------------------第一步:新建表:Test----------------------------
CREATE TABLE test(id varchar(50),[values] varchar(10)) INSERT test SELECT '001','aa' UNION ALL SELECT '001','bb' UNION ALL SELECT '002','aaa'
? 具体实现的方法: 方法① SELECT id, ? ? ? ?[values] = ? ? ? ?stuff(b.[values].value('/R[1]','nvarchar(max)'),宋体; font-size:14px; line-height:25px"> ? ? ? ? ? ? ?1,宋体; font-size:14px; line-height:25px"> ? ? ? ? ? ? ?'') ? FROM (SELECT ?id ? ? ? ? ? FROM test ? ? ? ? ?GROUP BY id) a ?CROSS apply ( ? ? ? ? SELECT [values] =( ? ? ? ? ? ? SELECT N',' + [values] FROM test ? ? ? ? ? ? ? WHERE id = a.id ? ? ? ? ? ? ? ? ? ? ? ? ?FOR XML PATH(''),ROOT('R'),TYPE ? ? ? ? ) ) b; 方法②: FROM test t1 GROUP BY id 最后结果: id ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? data ------------- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??---------------------- 001 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?aa,bb 002 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?aaa,bbb,ccc (2 行受影响) 不想要test的时候:drop table test (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |