【问题标题】:Sql Server Comparison behaviorSql Server 比较行为
【发布时间】:2014-05-26 00:31:31
【问题描述】:

我发现这很难测试/研究,所以我问:在类似于where (1 = 1) OR (column1 = @value)OR 条件下,是否会测试第二部分,例如:column1 = @value?如果可能,请提供文档...

【问题讨论】:

标签: sql sql-server tsql


【解决方案1】:

根据 Mladen Prajdić 的这篇文章,答案是否定的,SQL Server 不会为 OR 条件做短路:

http://weblogs.sqlteam.com/mladenp/archive/2008/02/25/How-SQL-Server-short-circuits-WHERE-condition-evaluation.aspx

另外,请参阅this post.

如果订单对您来说真的很重要,您可以使用CASE WHEN 声明。 SQL Server 总是按顺序评估CASE WHEN 条件。

【讨论】:

    猜你喜欢
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2010-10-21
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多