2013-08-14 33 views
21

My T-SQL sorgusu aşağıdaki oluşturur sonuç nasıl Herhangi bir öneri mutluluk duyacağız buvirgülle ayrılmış liste

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

gibi dönüştürebilirsiniz

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

ayarlayın.

cevap

57

Sen tek bir satıra birden çok satır bitiştirmek için FOR XML PATH ve STUFF kullanabilirsiniz:

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; 

SQL Fiddle with Demo

+1

Bu bana bir başlangıç ​​boşluk karakteri verdi Bkz. ', 1, 1,' ') AS tarihini ', 1, 2,' ') AS olarak değiştirerek düzelttim. – voidstate

İlgili konular