是否可以通过函数(如sum,avg,count等)将字符串与一个或多个其他组连接起来.
说我有下表
Id Name Order Value 1 a 1 100 2 b 2 200 3 c 1 300 4 d 1 100 5 e 2 300
现在,如果我希望结果是这种类型的东西
Order Name Value Count 1 a,c,d 500 3 2 b,e 500 2
解决方法
样本表
create table t123 (Id int,Name varchar(10),[Order] int,Value int) insert t123 select 1,'a','1',100 union all select 2,'b','2',200 union all select 3,'c',300 union all select 4,'d',100 union all select 5,'e',300
select a.[order],STUFF(( select ','+b.name from t123 b where b.[order] = a.[order] order by b.name for xml path('a'),type).value('.','nvarchar(max)'),1,'') Name,SUM(a.value) value,COUNT(*) [count] from t123 a group by a.[order]
产量
order Name value count ----------- ------------ ----------- ----------- 1 a,d 500 3 2 b,e 500 2