Sql server T-SQL:确保表达式在WHERE语句中的求值顺序
我相信有人能很快帮我解决这个问题。我肯定我不是第一个问这个问题的人,但我还没有发现任何类似的问题 具有以下WHERE语句:Sql server T-SQL:确保表达式在WHERE语句中的求值顺序,sql-server,tsql,where-clause,Sql Server,Tsql,Where Clause,我相信有人能很快帮我解决这个问题。我肯定我不是第一个问这个问题的人,但我还没有发现任何类似的问题 具有以下WHERE语句: WHERE boolean_expression1 OR boolean_expression2 OR subquery_count > 0 是这样执行的吗 如果(布尔表达式1=true)->使用true退出 else if(布尔表达式2=true)->使用true退出 else->执行子查询 我的意思是:子查询是否仅在前面的表达式都为false时执行? 如果没
WHERE boolean_expression1 OR boolean_expression2 OR subquery_count > 0
是这样执行的吗
- 如果(布尔表达式1=true)->使用true退出
- else if(布尔表达式2=true)->使用true退出
- else->执行子查询
ChrisSQL Server没有对计算顺序做出任何承诺,您也不能强制执行任何顺序。CASE WHEN表达式如何?您能想象一个用于此或示例的语句吗:WHERE(@GlobalSearch=1或@SomeCount=0或(子查询)>=@SomeCount)检查执行计划。
WHERE case when boolean_expression1 then 1
else case when boolean_expression2 then 1
else when subquery_count > 0 then 1 end = 1