SQL

¿Cómo unir o concatenar dos o más columnas separadas por un espacio en SQL con CONCAT_WS?

Estrada Web Group
Administrador
¿Cómo unir o concatenar dos o más columnas separadas por un espacio en SQL con CONCAT_WS?

En este tutorial, aprenderá a usar la función CONCAT_WS() de SQL Server para unir varias cadenas junto con un separador, esta función solo esta disponible en SQL Server 2017 en adelante.

Descripción general de la función CONCAT_WS() de SQL Server

La función CONCAT_WS() de SQL Server concatena dos o más cadenas en una cadena con un separador. CONCAT_WS() significa concatenar con separador.

A continuación, se muestra la sintaxis de la función CONCAT_WS():

CONCAT_WS(separator,input_string1,input_string2,[...input_stringN]);

En esta sintaxis podemos ver lo siguiente:

  • separator es una expresión basada en caracteres que evalúa cualquier carácter del tipo CHAR, NCHAR, VARCHAR o NVARCHAR.
  • input_string1 a input_stringN son expresiones de cualquier tipo. La función CONCAT_WS() convierte implícitamente valores de tipo sin carácter a tipo de carácter antes de la concatenación.

La función CONCAT_WS() une las cadenas de entrada en una sola cadena. Separa esas cadenas concatenadas con el separador especificado en el primer argumento.

Tenga en cuenta que CONCAT_WS() requiere al menos dos cadenas de entrada. Significa que, si pasa cero o un argumento de cadena de entrada, la función generará un error.

La función CONCAT_WS() los valores NULL los toma como una cadena vacía de tipo VARCHAR(1). Tampoco agrega el separador entre NULL. Por lo tanto, la función CONCAT_WS() puede unir cadenas que pueden tener valores en blanco.

SQL Server CONCAT_WS() ejemplos de funciones

Veamos algunos ejemplos del uso de la función CONCAT_WS().

A) Usar CONCAT_WS() para unir cadenas literales con un separador

El siguiente ejemplo utiliza la función CONCAT_WS() para unir dos cadenas literales en una. Separa dos valores concatenados usando un espacio:

SELECT
    CONCAT_WS(' ', 'Estrada', 'Web') full_name

Resultado:

full_name
---------
Estrada Web
(1 row affected)

B) Usando CONCAT_WS() con columnas de tabla

La siguiente instrucción usa la función CONCAT_WS() para unir valores en las columnas last_name y first_name de la tabla sales.customers de la base de datos de ejemplo. Separa el apellido y el nombre por una coma(,) y espacio:

SELECT
    first_name,
    last_name,
    CONCAT_WS(', ', last_name, first_name) full_name
FROM
    sales.customers
ORDER BY
    first_name,
    last_name;

La siguiente imagen muestra el resultado parcial:

SQL concat_ws spaces

C) Usando CONCAT_WS() con NULL

La siguiente declaración demuestra cómo la función CONCAT_WS) maneja las cadenas de entrada que tienen valores NULL:

SELECT 
    CONCAT_WS(',', 1, 2, NULL, NULL, 3);
Resultado:
result
----------------------------------------
1,2,3
(1 row affected)

Como se puede ver claramente en la salida, la función CONCAT_WS() ignora los NULL y no agrega el separador entre los valores NULL.

El siguiente ejemplo concatena los datos del cliente para formatear las direcciones del cliente. Si un cliente no tiene un número de teléfono, la función simplemente lo ignora:

SELECT
    CONCAT_WS
    (
        CHAR(13),
        CONCAT(first_name, ' ', last_name),
        phone,
        CONCAT(city, ' ', state),
        zip_code,
        '---'
    ) customer_address
FROM
    sales.customers
ORDER BY
    first_name,
    last_name;

La siguiente imagen ilustra la salida parcial:

CONCATENAR EN SQL

Tenga en cuenta que debe cambiar el resultado de la consulta de la cuadrícula a texto para ver el resultado en el formato anterior:

CONCATENAR DOS O MÁS COLUMNAS EN SQL

D) Usar CONCAT_WS() para generar un archivo CSV

Esta declaración utiliza una coma (,) como separador y concatena valores en first_name, last_name y la columna de correo electrónico para generar un archivo CSV:

SELECT
    CONCAT_WS(',', first_name, last_name, email)
FROM
    sales.customers
ORDER BY
    first_name,
    last_name;

Resultado:

cómo usar la función CONCAT_WS() de SQL Server para concatenar cadenas con un separador

En este tutorial, ha aprendido cómo usar la función CONCAT_WS() de SQL Server para concatenar cadenas con un separador, recuerde que esta función solo está disponible en SQL Server 2017 o superior.

Compartir artículo:

Más artículos geniales

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla ;