sql – string按功能与其他聚合函数连接

前端之家收集整理的这篇文章主要介绍了sql – string按功能与其他聚合函数连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以通过函数(如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

如何在sql服务器上使用查询来实现相同的功能.

解决方法

样本表
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

查询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,'') 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

猜你在找的MsSQL相关文章