我有以下 XE 谓词示例:
样本1:
Duration>1000000
AND cputime>1000
OR logicalreads>25000
样本2:
Duration>1000000
OR cputime>1000
AND logicalreads>25000
我知道它确实短路,但是在没有括号的情况下它如何计算出逻辑?
对于样本1来说是:
(A and B) or C
A and (B or C)
对于样本2来说是:
A or (B and C)
(A or B) and C
这将使我们了解运算符优先级。
AND
的优先级高于OR
,因此将首先进行评估。https://learn.microsoft.com/en-us/sql/t-sql/language-elements/operator-precedence-transact-sql?view=sql-server-ver16
所以在你的例子中,对于样本 1
以及样本2的
还有评论里的那一句:
将被处理为