【发布时间】:2012-05-01 12:46:48
【问题描述】:
“OR”比较是否像 vb. 我的意思是如果他检查每一个或如果第一个是假的
喜欢
DECLARE @var1 bit;
SET @var1=1
DECLARE @var2 bit;
SET @var2=1
(@var1=1 or @var2=1)
AND ...
那么,@var 等于 1,我们不需要检查 var2,但是 sql server 会做检查吗?
关于优化查询(和服务器内存)
让你失望
【问题讨论】:
-
VB 的
Or实际上不是 短路并且将 评估这两个条件。与 VB 中的OrElse进行比较。唯一一次短路(或不)真正在语义方面很重要是在条件中允许包括异常在内的副作用,这是另一个问题: "SQL Server 允许条件中的副作用吗?" -
@pst:虽然 OP 想要短路的原因是为了性能,但这是一个有效的非副作用相关原因:)
-
@mellamokb 是的,我完全避免回应这种愿望 ;-)
-
感谢您的回答。这真的很有帮助。主要是为了记住我 dba.stackexchange(我的错)。
标签: performance sql-server-2005 boolean-logic short-circuiting