28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
SQL UNION
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
20 enero SQL

¿Qué es y para qué sirve SQL UNION?

¿Qué es y para qué sirve SQL UNION?

En este tutorial, aprenderá a usar SQL UNION para combinar los resultados de dos o más tablas en un solo conjunto de resultados.

Introducción a SQL Server UNION

SQL Server UNION es una instrucción de conjunto que permite combinar resultados de dos instrucciones SELECT en un solo conjunto de resultados que incluye todas las filas que pertenecen a las instrucciones SELECT en la unión.

A continuación, se muestra la sintaxis de SQL UNION:
 

query_EstradaWebGroup_1
UNION
query_ EstradaWebGroup_2

Los requisitos que deben cumplir las consultas anteriores son los siguientes:

  • El número y el orden de las columnas deben ser iguales en ambas consultas.
  • Los tipos de datos de las columnas correspondientes deben ser iguales o compatibles.

El siguiente diagrama de Venn ilustra cómo se une el conjunto de resultados de la tabla T1 con el conjunto de resultados de la tabla T2:

SQL Union en sql server

UNION vs. UNION ALL

Por default, el operador UNION elimina todas las filas duplicadas de los conjuntos de resultados. Sin embargo, si desea conservar las filas duplicadas, debe especificar la palabra clave ALL explícitamente como se muestra a continuación:

query_EstradaWebGroup_1
UNION ALL
query_EstradaWebGroup_2

En otras palabras, el operador UNION elimina las filas duplicadas mientras que el operador UNION ALL incluye las filas duplicadas en el conjunto de resultados final.
UNION vs. JOIN

La unión como INNER JOIN o LEFT JOIN combina columnas de dos tablas, mientras que UNION combina filas de dos consultas.

En otras palabras, JOIN agrega los conjuntos de resultados horizontalmente, mientras que UNION agrega el conjunto de resultados verticalmente.

La siguiente imagen ilustra la principal diferencia entre UNION y JOIN:

UNION contra JOIN diferencias

Ejemplos de UNION de SQL Server

Consulte las siguientes tablas de personal y clientes de la base de datos de ejemplo:

tabla sql server

Ejemplos de SQL UNION y SQL UNION ALL

El siguiente ejemplo combina nombres de personal y clientes en una sola lista:

SELECT 
    first_name,
    last_name
FROM
    sales.staffs
UNION
SELECT
    first_name,
    last_name
FROM
    sales.customers;

Devuelve 1.454 filas.

La tabla de staffs tiene 10 filas y la tabla de clientes tiene 1,445 filas como se muestra en las siguientes consultas:

SELECT
    COUNT (*)
FROM
    sales.staffs;

-- 10      


SELECT
    COUNT (*)
FROM
    sales.customers;

-- 1445

Como el conjunto de resultados de la unión devuelve solo 1.454 filas, significa que se eliminó una fila duplicada.

Para incluir la fila duplicada, use UNION ALL como se muestra en la siguiente consulta:

SELECT
    first_name,
    last_name
FROM
    sales.staffs

UNION ALL

SELECT
    first_name,
    last_name
FROM
    sales.customers;

La consulta devuelve 1.455 filas como se esperaba.
 

Ejemplo de SQL UNION y ORDEN BY

Para ordenar el conjunto de resultados devuelto por el operador UNION, coloque la cláusula ORDER BY en la última consulta de la siguiente manera:

SELECT
    select_list
FROM
    table_1

UNION

SELECT
    select_list
FROM
    table_2
ORDER BY
    order_list;

Por ejemplo, para ordenar los nombres y apellidos de clientes y staff, utilice la siguiente consulta:

SELECT
    first_name,
    last_name
FROM
    sales.staffs

UNION ALL

SELECT
    first_name,
    last_name
FROM
    sales.customers
ORDER BY
    first_name,
    last_name;

En este tutorial, aprendiste a usar SQL UNION para combinar filas de múltiples consultas en un solo conjunto de resultados.

Compartir:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape