Anos atrás, era comum escrever
where exists (Select * from some_table where some_condition)
No ano passado, notei que muitos scripts t-sql passaram a usar o número 1 em vez da estrela
where exists (Select 1 from some_table where some_condition)
apenas no SO eu vi este exemplo Oracle
WHERE EXISTS (SELECT NULL FROM ...
Esse é um padrão comum com o Oracle? E quais são os argumentos de desempenho para usar algo como isto.
oracle
sql-server
style
bernd_k
fonte
fonte
Respostas:
Resposta curta: espero que não!
Até o
SELECT 1
idioma pode ter perdido sua utilidade, já que os mecanismos de banco de dados avançaram o suficiente para reconhecer que você realmente não deseja as linhas, apenas deseja saber se as linhas existem. Examinei os planos de execução no SQL 2005 e, geralmente, os reescrevi como junções, mesmo ondeSELECT *
é usado.fonte
No Oracle, não importa o desempenho. Você pode até colocar 1/0 lá e a instrução não retornará um erro de divisão por zero porque a expressão não é avaliada.
fonte