2012-05-21 9 views
5

Olası Yinelenen:Birden çok satırı SQL Server'da virgülle ayrılmış bir listeyle nasıl birleştirebilirim?

:
SQL Server: Can I Comma Delimit Multiple Rows Into One Column?

, Tablo X (X_ID, X_Name) 1-M Tablo Y ile (Y_ID, Y_value)

Tablo X, var

X_ID X_Name 
---- ------ 
12  foo 
14  foo2 
16  foo3 

Tablo Y:

X_ID Y_Value 
---- ------- 
12  A 
12  B 
14  C 
14  D 
14  E 
16  F 
16  G 

Aşağıdaki sonuç T-Sql'yi kullanarak nasıl edinilir?

X_ID X_Name Y_Value 
---- ------ ------ 
12  foo  A,B 
14  foo2  C,D,E 
16  foo3  F,G 

Teşekkür

cevap

14
SELECT X.X_ID, X.X_Name, Y_Value = STUFF((SELECT ',' + Y_Value FROM dbo.Y 
    WHERE Y.X_ID = X.X_ID 
    FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)'), 1, 1, '') 
    FROM dbo.X; 
+0

O ancak kaldırmak işleri 'Y_value =' – Costa

+0

neden @Costa? Çıktınızda, "Y_Value" nin bu sütunun adı olmasını istediğini söyledin. –

İlgili konular