有时,我们需要将表数据根据分组,统一在一个字段中,请看实例:
1、将测试数据插入临时表:
create table #tb(id int, value varchar(10))
insert into #tb values(1, 'a')
insert into #tb values(1, 'b')
insert into #tb values(2, 'aa')
insert into #tb values(2, 'bb')
insert into #tb values(2, 'cc')
insert into #tb values(3, 'aaa')
insert into #tb values(3, 'bbb')
insert into #tb values(3, 'ccc')
insert into #tb values(3, 'ddd')
insert into #tb values(4, 'aaaa')
insert into #tb values(4, 'bbbb')
insert into #tb values(4, 'cccc')
insert into #tb values(4, 'dddd')
go
select一下:select * from #tb

要达到下面的效果:

语句如下:
select id, [value] = stuff((select ',' + [value] from #tb t where id = #tb.id for xml path('')) , 1 , 1 , '')
from #tb
group by id
本文展示了如何使用SQL的聚合函数STUFF结合FOR XML PATH子句,将同一组内的多行数据合并到一个字段中,以达到数据整理和展示的目的。通过创建临时表并插入测试数据,然后执行特定的SQL查询,可以实现将具有相同ID的记录值用逗号分隔并整合到一起的效果。
615

被折叠的 条评论
为什么被折叠?



