¿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:

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:

Ejemplos de UNION de SQL Server
Consulte las siguientes tablas de personal y clientes de la base de datos de ejemplo:

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.
