T-sql查询以CSV格式输出值

时间:2011-08-30 13:02:16

标签: sql sql-server sql-server-2005 tsql

我在表格中有一个值,如下所示。我需要为每个 generation times 以逗号分隔值获取 subscriptionID

SubscriptionID GenerationTimes

6519    NULL
6616    NULL
6617    NULL
6618    9:00:00
6618    17:00:00
6634    NULL
6698    0:00:00

我需要如下结果

SubscriptionID GenerationTimes

6519    NULL
6616    NULL
6617    NULL
6618    9:00, 17:00
6634    NULL
6698    0:00:00

你注意到subscriptionID 6618 有两代时间,所以我必须把它们用逗号','分隔开来。请给我一些建议如何编写T-sql语句。

1 个答案:

答案 0 :(得分:5)

您可以像这样使用xml路径:

select 
      t1.SubscriptionID,
      (select GenerationTimes + ', '
       from tableName t2
       where t1.SubscriptionID = t2.SubscriptionID
       for xml path('')) as GenerationTimes
from tableName t1
group by t1.SubscriptionID