Cómo concatenar cadenas de texto en SQL Server con STRING_AGG

Resumen: en este tutorial, aprenderá a usar la función STRING_AGG()
de SQL Server para concatenar filas de cadenas en una cadena con un separador específico.
Introducción a la función STRING_AGG() de SQL Server
STRING_AGG()
es una función agregada que concatena filas de cadenas en una sola cadena, separadas por un separador específico. No agrega el separador al final de la cadena de resultados.
A continuación se muestra la sintaxis de la función STRING_AGG()
:
STRING_AGG ( input_string, separator ) [ order_clause ]
En esta sintaxis:
input_string
es cualquier tipo que se pueda convertir a VARCHAR y NVARCHAR cuando se concatena.separator
es el separador de la cadena de resultado. Puede ser un literal o una variable.order_clause
especifica el orden de clasificación de los resultados concatenados utilizando la cláusulaWITHIN GROUP
:
WITHIN GROUP ( ORDER BY expression [ ASC | DESC ] )
La función STRING_AGG()
ignora los NULL y no agrega el separador para NULL al realizar la concatenación.
Función STRING_AGG() de SQL Server
Usaremos la tabla sales.customers
de la base de datos de ejemplo para la demostración:
Uso de la función STRING_AGG()
para generar valores separados por comas
Este ejemplo utiliza la función STRING_AGG()
para generar listas de correos electrónicos de clientes por ciudad:
SELECT
city,
STRING_AGG(email,';') email_list
FROM
sales.customers
GROUP BY
city;
Aquí está el conjunto de resultados parciales:
Para ordenar la lista de correo electrónico, utiliza la cláusula WITHIN GROUP
:
SELECT
city,
STRING_AGG(email,';')
WITHIN GROUP (ORDER BY email) email_list
FROM
sales.customers
GROUP BY
city;
La siguiente imagen muestra el resultado parcial:
En este tutorial, aprendiste a usar la función STRING_AGG()
de SQL Server para concatenar filas de cadenas en una cadena con un separador específico.