以逗号分隔格式对数据进行分组

sat*_*jit 3 sql-server

我有一个名为SampleData的表,如下所示:

 col1    col2     
    1       a       
    1       b       
    1       c      
    2       d       
    2       e
    3       f
Run Code Online (Sandbox Code Playgroud)

我需要以下格式的数据:

col1    col2     
1       a,b,c           
2       d,e       
3       f
Run Code Online (Sandbox Code Playgroud)

有没有办法使用CTE这样做?

Joh*_*Woo 5

如果您正在使用以上,可以使用STUFFSQL Server 2005.

SELECT
     [col1],
     STUFF(
         (SELECT ',' + [col2]
          FROM Table1
          WHERE [col1] = a.[col1]
          FOR XML PATH ('')) , 1, 1, '')  AS col2
FROM Table1 AS a
GROUP BY [col1]
Run Code Online (Sandbox Code Playgroud)