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

¿Cómo se insertar en una tabla de SQL Server?

¿Cómo se insertar en una tabla de SQL Server?

En SQL, hay dos formas muy sencillas para INSERTAR datos en una tabla: Una es insertar una fila a la vez, y la otra es insertar filas múltiples o conjuntos de filas el cual explicaremos aquí también. Primero observemos como podemos INSERTAR datos a través de una fila a la vez:

Ver artículo completo
Cómo eliminar columnas de una tabla en SQL Server con ALTER TABLE y DROP COLUMN

Cómo eliminar columnas de una tabla en SQL Server con ALTER TABLE y DROP COLUMN

Resumen: en este tutorial, aprenderás cómo usar la declaración de columna ALTER TABLE DROP COLUMN de SQL Server para eliminar una o más columnas de una tabla existente.

Ver artículo completo
Cómo modificar una tabla SQL Server con Alter Table

Cómo modificar una tabla SQL Server con Alter Table

En este tutorial de SQL Server se explica cómo modificar una tabla utilizando la instrucción ALTER TABLE en SQL Server (Transact-SQL), por ejemplo, agregar una columna, modificar o eliminar una columna, cambiar el nombre de una columna o cambiar el nombre de una tabla con sintaxis y ejemplos.

Ver artículo completo

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 ;