exists duvidoso

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
carlos12
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 123
Registrado em: Qua, 24 Out 2007 4:31 pm
Localização: rio

É dessa maneira que posso fazer um EXISTS?

SELECT * FROM USUARIO where nrregistro exists(select * from usuario u where nrregitro = 48445)
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
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

Nesse caso não faz muito sentido, pois você está fazendo EXISTS na mesma tabela.
Daí é melhor colocar na cláusula where e pronto.

Normalmente, eu faço um tipo de "JOIN" entre a tabela externa e interna assim:

Selecionar tudo

SELECT * 
FROM USUARIO U
WHERE exists (select 1 
              from PERMISSAO P
              where u.usuario = p.usuario
                and u.permissoa='x'
             )

Nesse caso, ele vai mostrar todos usuários que tenham a permissão 'x'.
Agora, uma coisa típica de se fazer com exists:

Selecionar tudo

SELECT * 
FROM USUARIO U
WHERE exists (select 1 
              from PERMISSAO P
              where u.usuario = p.usuario
                and u.permissoa='x'
             )
  and exists (select 1 
              from PERMISSAO P
              where u.usuario = p.usuario
                and u.permissoa='y'
             )
Ele vai pegar todos usuários que tenha a permissão X e Y !!!
carlos12
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 123
Registrado em: Qua, 24 Out 2007 4:31 pm
Localização: rio

Rapaz valews pela ajuda agora já compreendo mais o exists brigadão que Deus te abençoe.
Responder
  • Informação
  • Quem está online

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