Sql server 2008 将列值转换为分组的逗号分隔字符串

Sql server 2008 将列值转换为分组的逗号分隔字符串,sql-server-2008,Sql Server 2008,我正在使用SQLServer2008。我有一张如下表: ID Name 1 a 1 b 2 c 3 d ID Name 1 a,b 2 c 3 d 我希望输出如下所示: ID Name 1 a 1 b 2 c 3 d ID Name 1 a,b 2 c 3 d Msg 4104,16级,状态1,第1行多部分标识符“iq.name”无法绑定。@Aaron,哎呀,我在键入时更改了表名,修复了!这还会产生一个额外的尾随逗号。你

我正在使用SQLServer2008。我有一张如下表:

ID  Name 
1   a
1   b
2   c
3   d
ID  Name
1   a,b
2   c
3   d
我希望输出如下所示:

ID  Name 
1   a
1   b
2   c
3   d
ID  Name
1   a,b
2   c
3   d

Msg 4104,16级,状态1,第1行多部分标识符“iq.name”无法绑定。
@Aaron,哎呀,我在键入时更改了表名,修复了!这还会产生一个额外的尾随逗号。你可以用
REPLACE
(如我的答案中所示)来消除这个问题,或者先用逗号,然后用
填充((选择“,”+itbl.name…,1,1,)
公平地说,您的解决方案会破坏
name
中已经存在的任何空间,但您不会看到我挑剔。。。总的来说,在你的控制器中删除一个尾随逗号要比找出哪个逗号实际上是一个空格容易得多。我不是吹毛求疵,只是指出它不同于OP的要求。我甚至告诉过你如何纠正它(也纠正了我的)。别那么防御性。