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_stringes cualquier tipo que se pueda convertir a VARCHAR y NVARCHAR cuando se concatena.separatores el separador de la cadena de resultado. Puede ser un literal o una variable.order_clauseespecifica 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.
