SQL Server 实现 mysql 的group_concat 函数
分类:SQL
但SQL Server 未提供有此函数 所以需要特殊处理一下在网上搜索 sql server 可以通过for xml path('') 解决所以自己构造了一个用例 写篇贴子做一个记录。
上代码
declare @t table
( id int identity(1,1),
pname varchar(20),
sname varchar(20),
score int
)
insert into @t(sname,pname,score)
values('张三','语文',102),
('张三','数学',99),
('李四','语文',100),
('李四','数学',99),
('王五','语文',80),
('王五','数学',70);
想实现如果结果集
核心的思想是利用 xml path 实现 如下面代码
select sname,sum(score) as total_SCore ,
stuff((select ',' + t.pname + ' ' + cast(score as varchar)
from @t as t where a.sname = t.sname for xml path('')),1,1,'') as detail
from @t as a
group by sname
作者:老骥
链接:https://www.jianshu.com/p/d101b1b01fa4
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。