2012-05-21 12 views
5

Eventuali duplicati:
SQL Server: Can I Comma Delimit Multiple Rows Into One Column?Come posso combinare più righe in un elenco delimitato da virgole in SQL Server?

Ho Tabella X (X_ID, X_Name) è 1-M e Tabella Y (Y_ID, Y_Value)

Tabella X:

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

Tabella Y:

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

Come ottenere il seguente risultato utilizzando T-Sql?

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

Grazie

risposta

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

funziona, ma rimuovere 'Y_Value =' – Costa

+0

@Costa perché? Nel tuo output hai detto che volevi che "Y_Value" fosse il nome di quella colonna. –

Problemi correlati