Udostępnij za pośrednictwem


Pierwszeństwo operatorów logicznych

Kiedy więcej niż jeden operator logiczny jest używany w instrukcja, nie jest obliczana jako pierwsza, I następnie i wreszcie lub.Arytmetyczne i bitowe, operatory są obsługiwane przed operatorów logicznych.

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

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

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

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

Za pomocą nawiasów, nawet w przypadku, gdy nie są wymagane, można poprawić czytelność kwerend i zmniejszenie szansy dokonywania subtelne pomyłka z powodu operator.Za pomocą nawiasów nie ma żadnych znaczących wydajnie.Poniższy przykład jest bardziej czytelny niż oryginalny przykład, chociaż syntaktycznie są takie same.

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