Conceitos
A função UNION permite combinar o resultado de duas ou mais tabelas intermediárias em uma única tabela resultado.
Sintaxe
| SELECT | select-statement |
||
| UNION [ALL] |
|||
| SELECT | select-statement |
||
| UNION [ALL] | |||
| SELECT | select-statement |
||
| ORDER BY |
sort-column [DESC] [, sort-column [DESC]]...] |
Exemplo
| SELECT |
CUSTNO, FNAME, LNAME |
|
| FROM PW0001.CUSTOMER |
||
| UNION ALL | ||
| SELECT |
CUSTNO, FNAME, LNAME |
|
| FROM PW0001.INACTIVCUST |
||
| ORDER BY |
LNAME |
Na função UNION, o DB2 cria uma tabela intermediária para cada declaração SELECT codificada. Depois o DB2 combina as tabelas intermediárias em uma tabela resultado.
A função UNION gera uma tabela resultado com mais de uma linha e por isso deve ser codificada dentro de uma declaração DECLARE CURSOR.
As tabelas intermediárias devem ter o mesmo número de colunas e os tipos de dados das colunas da primeira tabela intermediária devem ser compatíveis com as colunas correspondentes das outras tabelas intermediárias.
Ao combinar colunas com o mesmo nome, o DB2 usa este nome para a coluna na tabela resultado. Se os nomes são diferentes o DB2 usa o nome do primeiro SELECT para nomear a coluna na tabela resultado.
Duas linhas são duplicadas quando cada valor na primeira são iguais aos valores correspondentes na segunda.
Para manter as duplicidades na tabela resultado, utiliza-se a palavra chave ALL.
A cláusula ORDER BY, se utilizada deverá estar na última SELECT que é parte da UNION.
A declaração SELECT em uma UNION pode recuperar dados de uma tabela ou de uma view.
Como as UNIONS tratam tabelas que sejam praticamente iguais, esta função não é muito utilizada sendo preterida pelo uso de JOINS que são mais flexíveis.