逗号分隔的列(List Aggregate)在sql查询中

时间:2014-04-14 05:50:29

标签: sql sql-server-2008-r2

我的表结构如下:

FIELD_A  FIELD_B

1          C

1          D   

2          E

这是我的表结构和数据。

我希望得到如下结果:

1   C, D

2   E

我使用列表聚合功能在oracle中完成了它,如下所示:

LISTAGG(rtrim(RS.RECAPITO||' '||RS.NOTE), ', ') WITHIN GROUP (ORDER BY rtrim(RS.RECAPITO||' '||RS.NOTE)) TEL

但这不适用于sql。

我怎样才能在sql中执行此操作?

请帮帮我。

1 个答案:

答案 0 :(得分:2)

您可以使用STUFF

SELECT
     [FIELD_A],
     STUFF(
         (SELECT ',' + [FIELD_B]
          FROM TableName
          WHERE [FIELD_A] = a.[FIELD_A]
          FOR XML PATH (''))
          , 1, 1, '')  AS FieldList
FROM TableName AS a
GROUP BY [FIELD_A]