如何在T-SQL中的同一列上添加两个文本行

时间:2011-11-29 08:01:28

标签: sql-server sql-server-2008 tsql

如何在同一列上添加两个文本行,或者在文本列上应用sum()的任何替代聚合函数。

id       Name       
1          A        
1          B        
2          C        

按ID分组

这样的结果。

id  Names
1   A,B
2   C

1 个答案:

答案 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