sqlserver 分组合并

sqlserver 分组合并,第1张

概述--创建 test 表 ,插入数据 CREATE TABLE test(code varchar(50), [values] varchar(10),[count] int) INSERT test SELECT '001', 'aa',1 UNION ALL SELECT '001', 'bb',2 UNION ALL SELECT '002', 'aaa',4
 --创建 test 表 ,插入数据    CREATE table test(code varchar(50),[values] varchar(10),[count] int)    INSERT test SELECT '001','aa',1    UNION ALL SELECT '001','bb',2    UNION ALL SELECT '002','aaa',4    UNION ALL SELECT '002','bbb',5    UNION ALL SELECT '002','ccc',3;    --方法一    --将多行合并成一行,并做分组统计    SELECT code,[values] =    stuff(b.[values].value('/R[1]','nvarchar(max)'),''),[count]    FROM (SELECT code,sum([count]) as [count]    FROM test    GROUP BY code) a    CROSS apply (    SELECT [values] =(    SELECT N',' + [values] FROM test    WHERE code = a.code    FOR XML PATH(''),ROOT('R'),TYPE    )    ) b;    --方法二    ---sql2005中的新解法  使用XML    SELECT code,data=STUFF((SELECT ','+[values] FROM test t WHERE code=t1.code FOR XML PATH('')),1,sum([count]) as [count]    FROM test t1    GROUP BY code    --查询结果    --001   aa,bb   3    --002   aaa,bbb,ccc   12    drop table test
总结

以上是内存溢出为你收集整理的sqlserver 分组合并全部内容,希望文章能够帮你解决sqlserver 分组合并所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1164630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存