Aracılığıyla paylaş


Mantıksal işleç önceliği

Ne zaman birden fazla mantıksal işleç kullanılır bir deyim, ilk olarak değerlendirilmez ve sonra ve son olarak veya.Aritmetik ve, Bitsel işleçleri mantıksal işleçler önce işlenir.

Aşağıdaki örnekte, ürün modeli için renk koşul özetiyle 21 ve ürün modeli için değil 20, çünkü AND üzerinde önceliği vardır OR.

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

Sorgunun anlamını değerlendirilmesini zorlamak için parantez ekleyerek değiştirmek OR ilk.Aşağıdaki sorgu yalnızca ürün modelleri altında bulur 20 ve 21 red. olan

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

Parantez kullanarak bile bunlar gerekli olmadığında sorguları okunabilirliğini artırmak ve işleç önceliği nedeniyle ince bir hata yapma şansını azaltmak.Ayraç kullanımında hiçbir önemli bir performans sorunu vardır.Sözdizimi kurallarına göre aynı oldukları halde aşağıdaki örnekte özgün örnek daha fazla okunabilir durumdadır.

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