【发布时间】:2014-05-05 22:54:04
【问题描述】:
SQL Server 中的 AND 运算符是否等同于 C#(或其他语言)中的 && 或 &?
即,如果发现第一个条件为假,它会检查第二个条件吗?
【问题讨论】:
-
抱歉,我找不到任何文档
-
对您的查询运行 EXPLAIN。它将向您展示查询是如何解析和执行的,以及使用了哪些索引等。查找有关如何阅读解释计划的文档。
-
否,在 SQL 中,不保证布尔表达式的计算顺序。 不要依赖这个在 C# 或其他语言中可能没问题的布尔“短路”! See this blog post by Remus Rusanu 一个很好的例子
-
"或其他语言" - 一些语言同时定义 short-circuiting 和布尔运算符的非短路变体,或仅定义非短路运算符。你不应该假设短路在所有其他语言中都是通用的。
标签: sql sql-server