Saltar navegação

S02.a - Função UNION

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.

Licença: licença proprietária