Sql 将行集合转换为具有值列表的列

Sql 将行集合转换为具有值列表的列,sql,sql-server,Sql,Sql Server,我需要将行列表转换为单列值 例: 需要转换为 ID New Value 1 v1,v2,v3 2 v4,v5,v6,v7 请告诉我如何在SQL server中编写查询 谢谢 SELECT DISTINCT ID, STUFF((SELECT ',' + Value FROM Table T WHERE T.ID = ID FOR XML PATH ('')), 1, 1, '') A

我需要将行列表转换为单列值

例:

需要转换为

ID         New Value
1          v1,v2,v3
2          v4,v5,v6,v7
请告诉我如何在SQL server中编写查询

谢谢

SELECT DISTINCT ID, 
  STUFF((SELECT ',' + Value
         FROM Table T
         WHERE T.ID = ID
         FOR XML PATH ('')), 1, 1, '') AS [New Value]
FROM Table
GROUP BY ID  
我从这里得到的:

我从这里得到的:

@BoratSagdiyev-如果是这样的话,那么我当然会在我的例子中对varchar进行一次角色转换。请指出,如果是另一个问题,那么更多的事情将是错误的。@BoratSagdiyev-如果是这样的话,那么在我的例子中,我当然会对varchar进行转换。如果是另一个问题,请指出更多错误的地方。
SELECT DISTINCT ID, 
  STUFF((SELECT ',' + Value
         FROM Table T
         WHERE T.ID = ID
         FOR XML PATH ('')), 1, 1, '') AS [New Value]
FROM Table
GROUP BY ID