То, что вы имеете в виду, является краткой оценкой. И, да, если SQL Server оценивает выражения, и первое, что он оценивает, является ложным, то он (необязательно) не оценивает второе.
Есть несколько предостережений по этому поводу. Во-первых, у вас нет возможности узнать, какой SQL Server выберет для оценки первым. Если один дешевый, а другой дорогой (скажем, пользовательская функция), то вы можете управлять порядком выполнения, используя выражение case
.
Во-вторых, оценка выражений обычно , а не , что требует времени в запросе. Чтение данных и сопоставление строк для объединений и агрегатов обычно являются трудоемкой частью запросов. Поэтому сосредоточение внимания на микрооптимизации может не сильно помочь вам в повышении производительности.