Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Expandir
titleVeja um Exemplo

A cláusula EXISTS trabalha como um comando de decisão, caso o valor seja encontrado segundo a consulta apontada pela EXISTS, então a consulta principal será executada. Neste exemplo só vou buscar a lista de pessoas caso exista pelo menos uma pessoa com a data de nascimento dia 24/04/69:

SELECT * FROM PPESSOA (NOLOCK) 

WHERE EXISTS ( SELECT TOP 1 'OK' FROM PPESSOA (NOLOCK) 

WHERE DTNASCIMENTO = '1969-04-24' )

Geram o mesmo número de linhas com dois conceitos aplicados:

Obs. Uma sugestão para o uso da cláusula IN, por exemplo, tenho uma lista de palavras que preciso fixá-las no filtro, neste caso tente usar a seguinte semântica:

...

Image Added

Antes:  SELECT * FROM PPESSOA WHERE APELIDO IN ('EDSON','DANIEL','ANDRE')

Depois: SELECT * FROM PPESSOA WHERE APELIDO  IN (SELECT * FROM ( VALUES ('EDSON'),('DANIEL'),('ANDRE') ) MINHALISTA(APELIDO))

Este ganho será evidente principalmente se a lista tiver muitos valores, no exemplo abaixo foi inserida uma lista de 673 valores e já podemos ver o ganho de 2%, sendo mais expressivo dependendo do conteúdo da tabela e o tipo de dados filtrados:

6. Between no lugar de Or/And dependendo do caso? Esta é uma dúvida que sempre aparece quando precisamos usar essa cláusula, vamos entender:

...