Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/04/2011, 15:26
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años, 1 mes
Puntos: 447
Respuesta: Hay manera fácil de concatenar valores de filas?

Hola LUISESPOCH:

Lamentablemente, SQL Server no implementa la función Group_Concat de MySQL, que hace exactamente lo que tu quieres, sin embargo puedes simular esta consulta. La implementación no es nada sencilla, pero te puede servir.

Código SQL:
Ver original
  1. DECLARE @Tabla TABLE (Campo1 VARCHAR(3), Campo2 VARCHAR(50))
  2. INSERT INTO @Tabla VALUES ('001', 'Descripcion1')
  3. INSERT INTO @Tabla VALUES ('001', 'Descripcion2')
  4. INSERT INTO @Tabla VALUES ('001', 'Descripcion3')
  5. INSERT INTO @Tabla VALUES ('002', 'Descripcion1')
  6. INSERT INTO @Tabla VALUES ('002', 'Descripcion2')
  7. INSERT INTO @Tabla VALUES ('002', 'Descripcion3')
  8.  
  9.  
  10. SELECT Campo1, LEFT(CamposConcatenados , LEN(CamposConcatenados )-1) AS CamposConcatenados
  11. FROM @Tabla AS extern
  12. CROSS APPLY
  13. (
  14.     SELECT Campo2 + ','
  15.     FROM @Tabla AS intern
  16.     WHERE extern.Campo1 = intern.Campo1
  17.     FOR XML PATH('')
  18. ) pre_trimmed (CamposConcatenados)
  19. GROUP BY Campo1, CamposConcatenados

el resultado de esto sería:

Código:
Campo1|CamposConcatenados
-----------------------------------------------------------
001|Descripcion1,Descripcion2,Descripcion3
002|Descripcion1,Descripcion2,Descripcion3
Checa estas páginas

http://stackoverflow.com/questions/4...ql-server-2005

http://explainextended.com/2010/06/2...in-sql-server/


Hay alguna razón en especial por la que no debas utilizar funciones??? te lo digo porque también puedes implementar una función de concatenación mucho más sencilla. Aquí un ejemplo:

http://www.forosdelweb.com/f21/conca...olumna-324779/

Saludos
Leo.