Несколько лет назад было принято писать
where exists (Select * from some_table where some_condition)
В прошлом году я заметил, что многие сценарии t-sql переключились на использование числа 1 вместо звезды
where exists (Select 1 from some_table where some_condition)
просто на ТАК я видел этот пример Oracle
WHERE EXISTS (SELECT NULL FROM ...
Это общий шаблон с Oracle? И какие аргументы производительности использовать что-то вроде этого.
oracle
sql-server
style
bernd_k
источник
источник
Ответы:
Краткий ответ: я надеюсь, что нет!
Даже
SELECT 1
идиома, возможно, изжила себя, так как движки баз данных достаточно продвинулись, чтобы понять, что строки на самом деле вам не нужны, вы просто хотите знать, существуют ли строки. Я рассмотрел планы выполнения в SQL 2005 и обычно видел их переписанными как объединения, даже там, где ониSELECT *
используются.источник
В Oracle это не имеет значения с точки зрения производительности. Вы даже можете поместить 1/0 туда, и оператор не вернет ошибку деления на ноль, потому что выражение не вычисляется.
источник