Not exists

3 respostas
L

Bom dia a todos, eu estou com uma dúvida em relação ao comando not exists no banco de dados oracle. Esse comando traz tudo aquilo que não existe ou oque existe?

3 Respostas

J

Ele é interpretado da mesma maneira que a sintaxe dele:
not -> não
exists -> existe

Logo not exists -> não existe.

L

Ai ele só me trás aquilo que não existe?!

J

Ele te trás tudo aquilo que não existe dentro da condição atual de consulta!

Vou listar um exemplo prático pra ficar mais fácil o entendimento do uso do comando, neste caso vou utilizar o modelo padrão do Oracle que no caso é o Scott. (Caso não conheça, na internet você consegue encontrá-lo para download).

Exemplo com EXISTS:
Listar os nomes de todos os empregados que são gerentes:

select ename from emp externo
where exists
    (select emp.* from emp
     inner join emp gerente on(emp.mgr = gerente.empno)
     where emp.empno = externo.empno)
order by ename asc;

Exemplo com NOT EXISTS:
Listar os nomes de todos os empregados que não são gerentes:

select ename from emp externo
where not exists
   (select emp.* from emp
    inner join emp gerente on(emp.mgr = gerente.empno)
    where emp.empno = externo.empno)
order by ename asc;
Criado 11 de setembro de 2017
Ultima resposta 13 de set. de 2017
Respostas 3
Participantes 2