SQL Server OR优先澄清?
问题描述:
我读this question约逻辑运算符OR和在WHERESQL Server OR优先澄清?
但是我想延长这一问题的条件和环境秩序。
问题1:
IF (CONDITION 1) OR (CONDITION 2)
我不是在谈论If CONDITION 1 is TRUE, will CONDITION 2 be checked
但是 - 难道SQL将选择基于condition 2
行(这是第二句话)而不是condition 1
这是第一个短语?
例如:
columnA columnB
2 2
select * from table where id=columnA or id=columnB
现在,是有可能,我行beucuse它评估第一id=columnB
问题2:
这问题ta关于Where
条款。怎么样加入?没有这些角色也适用
select * from Table1 join Table2 on Table1.id=Table2.id or Table1.aa = Table2.aa
- 如果条件1为真,将条件2进行检查?
- 难道SQL将产生基于
condition 2
行(这是第二句话),而不是condition 1
这是第一个短语
答
我不明白你的问题的部分问得行,所以我可以迄今回答只有部分是:
如果条件1为真,将条件2检查
这要看情况。它可能,它可能不会。对于SQL语句的任何部分,不保证短路或评估顺序。
我不明白你试图用“产生一排基于......”来划分什么样的区别 - 你可以试着解释一下这个区别是什么(或者会是什么),为什么它很重要? – 2013-02-12 09:39:27
@Damien_The_Unbeliever请看看我的编辑。 – 2013-02-12 11:17:38
我还不确定。在结果集中似乎没有**可观察到的差异。那么,它会产生什么*不同? – 2013-02-12 11:21:18