Concatenar una columna sin utilizar cursores de SQL Server (T-SQL)

Author Top
kenneth

En el lenguaje de consulta estructurado (SQL) es el lenguaje de acceso a bases de datos relacionales, en algunas ocaciones nos enfrentamos a ciertos requerimientos los cuales nos presentan cierto grado de dificultad para superarlo, uno de estos puede ser el siguiente caso:

Obtener todos los correos electronicos de los usuarios del sistema separados por coma ','.

En este ejemplo crearemos una tabla llamada "Usuarios", en la base de datos relacional, y definiremos la siguiente estructura:

CREATE TABLE Usuarios(
Id INT PRIMARY KEY IDENTITY(1,1),
Correo VARCHAR(200) UNIQUE
)

Ahora bien, para solucionar requerimiento podemos pensar en utilizar un Cursor T-SQL sin embargo en este caso veremos una manera que no usa tantos recursos y obtendremos el mismo r esultado.

Declaramos una variable de tipo VARCHAR(MAX) y la inicializamos en blanco, esta variable es donde almacenaremos todos los resultados de la consulta,

DECLARE @result VARCHAR(MAX) = ''

Luego crearemos nuestra consulta SQL sobre la tabla Usuario asignadole el valor a la variable @result contatenando cada resultado de todas las filas, de la siguiente manera:

SELECT @result = @result +',' + u.Correo
FROM Usuarios u

Antes de terminar debemos ajustar el resultado de la consulta utilizando la funcion 'SUBSTRING'  y luego podemos utilizar nuestra variable con la informacion adecuada, por ejemplo imprimirla en consola utilizando la funcion PRINT, el codigo SQL se veria como el siguiente,

SET @result = SUBSTRING(@result,2,LEN(@result))
PRINT @result

Espero que les sea de mucha ayuda,

Saludos,

bursa esc
bursa eskort
bursa escort bayan bursa travesti escort bursa merkez escort bursaescort bursa escort bayanlar alanya eskort bayan antalya bayan eskort havalimanı transfer