Para concatenar elementos en SQLServer ya sea separadas por coma u otro carácter de separación podemos utilizar la función COALESCE, esta función es parecido a un CASE, si la primera expresión es nula tomara la siguiente expresión y así de esta manera nos evitaremos validar si es la primera vez para no ponerle el carácter de separación ",".
Ejemplo:
-- Tabla temporal
DECLARE @tblNombres TABLE(Nombre VARCHAR(30))
-- Inserto sus valores
INSERT INTO @tblNombres
( Nombre )
SELECT 'Jose'
UNION
SELECT 'Juan'
UNION
SELECT 'Pedro'
UNION
SELECT 'Paco'
UNION
SELECT 'Luis'
SELECT * FROM @tblNombres
-- Aquí la solución sencialla de concatenar sin case o if
DECLARE @sNombres VARCHAR(100)
SELECT @sNombres = COALESCE(@sNombres + ',', '') + Nombre
FROM @tblNombres
SELECT @sNombres AS Nombres
Resultado:
(5 row(s) affected)
Nombre
------------------------------
Jose
Juan
Luis
Paco
Pedro
(5 row(s) affected)
Nombres
----------------------------------------------------------------------------------------------------
Jose,Juan,Luis,Paco,Pedro
(1 row(s) affected)
No se les olvide comentar y darle un +1.
----------------------------------------------------------------------------------------------------
Lo que se puede imaginar... se puede programar
No hay comentarios:
Publicar un comentario