Eu tenho os seguintes exemplos de predicados XE:
Amostra 1:
Duration>1000000
AND cputime>1000
OR logicalreads>25000
Amostra 2:
Duration>1000000
OR cputime>1000
AND logicalreads>25000
Entendo que ocorre curto-circuito, mas como funciona a lógica sem a presença de colchetes?
Para a amostra 1 é:
(A and B) or C
A and (B or C)
Para a amostra 2 é:
A or (B and C)
(A or B) and C
Isso nos tornará a Precedência do Operador.
AND
tem uma precedência maior queOR
, portanto será avaliado primeiro.https://learn.microsoft.com/en-us/sql/t-sql/linguagem-elements/operator-precedence-transact-sql?view=sql-server-ver16
Então, nos seus exemplos será, para a amostra 1
E da amostra 2
E aquele dos comentários:
Será tratado como