Operadores UNION e UNION ALL do SQL

Operador UNION do SQL

O operador UNION é usado para combinar os conjuntos de resultados de duas ou mais cláusulas SELECT.

Por favor, a cláusula SELECT interna do UNION deve ter o mesmo número de colunas. As colunas também devem ter tipos de dados semelhantes. Além disso, a ordem das colunas em cada cláusula SELECT deve ser a mesma.

Sintaxe do SQL UNION

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

Nota:Por padrão, o operador UNION seleciona valores diferentes. Se permitir valores repetidos, use UNION ALL.

Sintaxe do SQL UNION ALL

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

Além disso, os nomes das colunas no conjunto de resultados UNION são sempre iguais aos nomes das colunas no primeiro comando SELECT da UNION.

As tabelas originais usadas nos exemplos abaixo:

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

Usar o comando UNION

Exemplo

Listar todos os nomes de empregados diferentes na China e nos EUA:

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 não pode listar todos os empregados na China e nos EUA. No exemplo acima, temos dois empregados com o mesmo nome, mas apenas um deles foi listado. O comando UNION apenas seleciona valores diferentes.

UNION ALL

Os comandos UNION ALL e UNION são quase equivalentes, mas o UNION ALL lista todos os valores.

SQL Statement 1
UNION ALL
SQL Statement 2

Usar o comando UNION ALL

Exemplo:

Listar todos os empregados na China e nos EUA:

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