2011-09-06 149 views

回答

1
​​
+0

'消息4104,级别16,状态1,行1 多部分标识符“iq.name”无法绑定。' –

+0

@Aaron,哎呀,我在更改表名的同时打字,固定! – Blindy

+0

这也会产生一个额外的尾随逗号。你可以用'REPLACE'(如我的答案)或者先把逗号先用'STUFF((select','+ itbl.name ...),1,1,'');' –

1
SELECT DISTINCT 
    ID, 
    Names = REPLACE(STUFF( 
     ( 
      SELECT ',' + Name AS [data()] 
      FROM dbo.Table AS x 
      WHERE x.ID = t.ID 
      ORDER BY Name 
      FOR XML PATH ('') 
     ), 1, 1, ''), ' ,', ',') 
FROM dbo.Table AS t 
ORDER BY ID; 
+0

这真的很整洁,谢谢 – IThasTheAnswer