如何在同一列上添加两个文本行,或者在文本列上应用sum()的任何替代聚合函数。
id Name
1 A
1 B
2 C
按ID分组
这样的结果。
id Names
1 A,B
2 C
答案 0 :(得分:2)
试试这个:
declare @t table(id int, name varchar(50))
insert @t values(1, 'A')
insert @t values(1, 'B')
insert @t values(2, 'C')
select t.id,
,STUFF((
select ',' + [name]
from @t t1
where t1.id = t.id
for xml path(''), type
).value('.', 'varchar(max)'), 1, 1, '') [Names]
from @t t
group by t.id
结果:
id Names
----------- --------------
1 A,B
2 C