样品表
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','1',300 union all select
4,'d','1',100 union all select
5,'e','2',300
查询 SQL Server 2005 及更高版本
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,1,'') Name,
SUM(a.value) value,
COUNT(*) [count]
from t123 a
group by a.[order]
输出
order Name value count
----------- ------------ ----------- -----------
1 a,c,d 500 3
2 b,e 500 2