Ir para o conteúdo principal

Union e Union All

É possível combinar os resultados de duas ou mais consultas através do operador Union.

Será mostrado um exemplo de situação onde esse operador pode ser usado e os resultados entre duas tabelas.

TABELA EXEMPLO

EX_FILIAL 

| DESCRICAO  |
--------------
| 'Matriz'   |
| 'Filial 1' |
| 'Filial 2' |
| 'Filial 3' |

SQL de CRIAÇÃO/INSERÇÃO: 

CREATE TABLE ex_filial (descricao VARCHAR(20));
INSERT INTO ex_filial VALUES ('Matriz');
INSERT INTO ex_filial VALUES ('Filial 1');
INSERT INTO ex_filial VALUES ('Filial 2');
INSERT INTO ex_filial VALUES ('Filial 3');

EX_PONTOS_DE_VENDA

| DESCRICAO   |
---------------
| 'Filial 1'  |
| 'Filial 2'  |
| 'Filial 3'  |
| 'Unidade 1' |
| 'Unidade 2' |

SQL de CRIAÇÃO/INSERÇÃO: 

CREATE TABLE ex_pontos_de_venda (descricao VARCHAR(20));
INSERT INTO ex_pontos_de_venda VALUES ('Filial 1');
INSERT INTO ex_pontos_de_venda VALUES ('Filial 2');
INSERT INTO ex_pontos_de_venda VALUES ('Filial 3');
INSERT INTO ex_pontos_de_venda VALUES ('Unidade 1');
INSERT INTO ex_pontos_de_venda VALUES ('Unidade 2');
UNION

O operador UNION une o retorno de duas consultas fazendo DISTINCT.

SELECT DESCRICAO 
  FROM EX_FILIAL
 UNION
SELECT DESCRICAO 
  FROM EX_PONTOS_DE_VENDA

Retorno:

| DESCRICAO   |
---------------
| 'Filial 1'  |
| 'Filial 2'  |
| 'Filial 3'  |
| 'Matriz'    |
| 'Unidade 1' |
| 'Unidade 2' |
UNION ALL

O operador UNION ALL une o retorno de duas consultas sem fazer DISTINCT.

SELECT DESCRICAO 
  FROM EX_FILIAL
 UNION ALL
SELECT DESCRICAO 
  FROM EX_PONTOS_DE_VENDA

Retorno:

| DESCRICAO   |
---------------
| 'Matriz'    |
| 'Filial 1'  |
| 'Filial 2'  |
| 'Filial 3'  |
| 'Filial 1'  |
| 'Filial 2'  |
| 'Filial 3'  |
| 'Unidade 1' |
| 'Unidade 2' |