2013-08-14 18 views
21

La mia domanda T-SQL genera seguente risultato impostatovirgole lista delimitata come una singola stringa, T-SQL

ID  Date 
756 2011-08-29 
756 2011-08-31 
756 2011-09-01 
756 2011-09-02 

Come posso convertire come questo

ID    Date 
756 2011-08-29, 2011-08-31, 2011-09-01, 2011-09-02 

Ogni suggerimento sarebbe apprezzato.

risposta

57

Si potrebbe utilizzare FOR XML PATH e STUFF per concatenare le più righe in una singola riga:

select distinct t1.id, 
    STUFF(
     (SELECT ', ' + convert(varchar(10), t2.date, 120) 
      FROM yourtable t2 
      where t1.id = t2.id 
      FOR XML PATH ('')) 
      , 1, 1, '') AS date 
from yourtable t1; 

Vedi SQL Fiddle with Demo

+1

Questo mi ha dato uno spazio di partenza. L'ho risolto cambiando ', 1, 1, '') AS date' a', 1, 2, '') AS date'. – voidstate

Problemi correlati