Operadores UNION y UNION ALL de SQL

Operador UNION de SQL

El operador UNION se utiliza para combinar los resultados de dos o más declaraciones SELECT.

Por favor, asegúrese de que la declaración SELECT interna de UNION tenga el mismo número de columnas. Las columnas también deben tener tipos de datos similares. Además, el orden de las columnas en cada declaración SELECT debe ser el mismo.

Sintaxis de SQL UNION

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

Nota:Por defecto, el operador UNION selecciona valores diferentes. Si se permiten valores repetidos, utilice UNION ALL.

Sintaxis de SQL UNION ALL

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

Además, los nombres de las columnas en los resultados de UNION siempre son iguales a los nombres de las columnas en la primera sentencia SELECT de UNION.

A continuación, se muestra la tabla original utilizada en el ejemplo:

Employees_China:

E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming

Employees_USA:

E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill

Uso del comando UNION

Ejemplo

Se enumeran todos los nombres de empleados diferentes en China y Estados Unidos:

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

Resultados

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill

Nota:Este comando no puede enumerar todos los empleados en China y Estados Unidos. En el ejemplo anterior, hay dos empleados con el mismo nombre, y solo uno de ellos se enumera. El comando UNION solo selecciona valores diferentes.

UNION ALL

El comando UNION ALL y el comando UNION son prácticamente equivalentes, aunque el comando UNION ALL enumera todos los valores.

SQL Sentencia 1
UNION ALL
SQL Sentencia 2

Uso del comando UNION ALL

Ejemplo:

Se enumeran todos los empleados en China y Estados Unidos:

SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA

Resultados

E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill