Union

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Laninha
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 68
Registrado em: Qua, 24 Out 2007 3:06 pm
Localização: Nilópolis - Rio de Janeiro

Oi pessoal!!!

Gostaria de saber com vocês, como e quando utilizar um Union no select???
Qual a melhor hora?? Ele provoca lentidão no meu select?

Obrigada como sempre!!!
Laninha :D
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Laninha, boa tarde.

A hora correta, depende da tua base de dados.
Por exemplo, se você tem situações em duas tabelas distintas, você pode utilizar o union, quando você não consegue isso através de joins.

Quanto à performance, tudo depende... da tua base (quantidade de registros), dos índices etc.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5018
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Lembrando que o UNION faz um "distinct" implícitamente.
Pra evitar mais esse custo, use UNION ALL se for o caso de não ter linhas repetidas...
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Bem lembrado, Dr_Gori.

Acabei montando um exemplo, para deixar essa diferença exibida pro pessoal aqui do fórum:

Selecionar tudo

CREATE TABLE teste (descricao VARCHAR2(100));

INSERT INTO teste VALUES ('Sim');
INSERT INTO teste VALUES ('Sim');
INSERT INTO teste VALUES ('Sim');

-- Union (Faz distinct no 'Sim')
SELECT descricao
  FROM teste
UNION 
SELECT 'Não'
  FROM dual		;
  
-- Union ALL
SELECT descricao
  FROM teste
UNION ALL 
SELECT 'Não'
  FROM dual		;
  
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes