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

des*_*esi 2 sql t-sql sql-server sql-server-2005

我在表格中有一个值,如下所示.我需要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
Run Code Online (Sandbox Code Playgroud)

我需要如下结果

SubscriptionID GenerationTimes

6519    NULL
6616    NULL
6617    NULL
6618    9:00, 17:00
6634    NULL
6698    0:00:00
Run Code Online (Sandbox Code Playgroud)

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

Adu*_*cci 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
Run Code Online (Sandbox Code Playgroud)