Logical Operator Precedence

Gdy więcej niż jeden operator logiczny, jest używany w instrukcja, nie jest wyznaczana po pierwsze, następnie AND, a na końcu OR.Operacje arytmetyczne i bitowe, operatory są obsługiwane przed operatory logiczne.

W poniższym przykładzie warunek kolor odnosi się do modelu produktu 21 a nie do modelu produktu 20, ponieważ AND ma pierwszeństwo OR.

USE AdventureWorks;
GO
SELECT ProductID, ProductModelID
FROM AdventureWorks.Production.Product
WHERE ProductModelID = 20 OR ProductModelID = 21
  AND Color = 'Red'

Znaczenie kwerendy można zmienić, dodając nawiasy, aby wymusić oceny OR pierwszy. Następująca kwerenda powoduje znalezienie tylko produkty w modelach 20 i 21 które mają kolor czerwony.

SELECT ProductID, ProductModelID
FROM AdventureWorks.Production.Product
WHERE (ProductModelID = 20 OR ProductModelID = 21)
  AND Color = 'Red'

Za pomocą nawiasów, nawet wtedy, gdy nie są wymagane, można poprawić czytelność kwerendy i zminimalizować możliwość dokonywania subtelnych błąd z powodu pierwszeństwa operator.Jest nie kara znaczące wydajności przy użyciu nawiasów.W poniższym przykładzie jest bardziej czytelny niż oryginalny przykład, chociaż składniowo są takie same.

SELECT ProductID, ProductModelID
FROM AdventureWorks.Production.Product
WHERE ProductModelID = 20 OR (ProductModelID = 21
  AND Color = 'Red')