SQL Server 数据处理:分组后拼接与求和技巧全掌握

289 阅读1分钟

创建表

create table #temp
(
	id int identity(1,1),
	userName nvarchar(50),
	score int 
)

插入数据

insert into #temp values('张三', 98)
insert into #temp values('张三', 92)
insert into #temp values('李四', 95)
insert into #temp values('李四', 99)
SELECT userName, 
data=STUFF((SELECT ','+ CAST(score as varchar(100)) FROM #temp t WHERE userName=t1.userName FOR XML PATH('')), 1, 1, ''),
sum(score) as [count]
FROM #temp t1
GROUP BY userName

结果: image.png

STUFF函数介绍:
STUFF ( character_expression , start , length ,character_expression )
character_expression:字符数据
start :指定删除和插入的开始位置
length :指定要删除的字符数
character_expression : 替换start 到 length 的字符数据