2013-08-14 13 views
21

Moje zapytanie T-SQL generuje następujący wynik ustawićrozdzielany przecinkami listę jako jeden ciąg, T-SQL

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

Jak mogę przekonwertować jak ten

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

Wszelkie sugestie będą mile widziane.

Odpowiedz

57

Można użyć FOR XML PATH i STUFF aby złączyć wiele wierszy w jednym rzędzie:

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; 

Zobacz SQL Fiddle with Demo

+1

Ten dał mi znak spacji wyjścia. Naprawiłem to zmieniając ", 1, 1,") AS data "na", 1, 2, ") AS data". – voidstate

Powiązane problemy