2012-05-21 21 views
5

Duplicar posibles:
SQL Server: Can I Comma Delimit Multiple Rows Into One Column?¿Cómo puedo combinar varias filas en una lista delimitada por comas en SQL Server?

tengo Tabla X (X_ID, X_Name) es 1-M con la Tabla Y (Y_ID, valor_Y)

Tabla X:

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

Tabla Y:

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

¿Cómo obtener el siguiente resultado con T-Sql?

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

Gracias

Respuesta

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

funciona, pero quitar 'valor_Y =' – Costa

+0

@Costa ¿Por qué? En su salida, dijo que quería 'Y_Value' para ser el nombre de esa columna. –

Cuestiones relacionadas