Histórico da Página
...
Expandir | ||
---|---|---|
| ||
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: |
...
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:
...