Aracılığıyla paylaş


İşleç Önceliği (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Karmaşık bir ifadede birden çok işleç olduğunda, işleç önceliği işlemlerin sırasını belirler. Yürütme sırası, sonuçta elde edilen değeri önemli ölçüde etkileyebilir.

İşleçler aşağıdaki tabloda gösterilen öncelik düzeylerine sahiptir. Daha yüksek düzeylerdeki bir işleç, daha düşük düzeydeki bir işleç öncesinde değerlendirilir. Aşağıdaki tabloda 1 en yüksek düzey, 8 ise en düşük düzeydir.

Level Operators
1 ~ (Bit Düzeyinde DEĞİl)
2 * (Çarpma), / (Bölme), % (Modulus)
3 + (Pozitif), - (Negatif), + (Toplama), + (Birleştirme), - (Çıkarma), & (Bit Düzeyinde VE), ^ (Bit Düzeyinde Özel VEYA), | (Bit Düzeyinde VEYA)
4 =, >, <, >=, =, <= , <>!=, !>, !< (Karşılaştırma işleçleri)
5 NOT
6 AND
7 ALL, ANY, BETWEEN, IN, LIKE VEYA, SOME
8 = (Görev)

İfadedeki iki işleç aynı öncelik düzeyine sahip olduğunda, ifadedeki konumlarına göre soldan sağa değerlendirilir. Örneğin, aşağıdaki SET deyimde kullanılan ifadede çıkarma işleci toplama işlecinden önce değerlendirilir.

DECLARE @MyNumber INT;  
SET @MyNumber = 4 - 2 + 27;  
-- Evaluates to 2 + 27 which yields an expression result of 29.  
SELECT @MyNumber;  

İfadedeki işleçlerin tanımlı önceliğini geçersiz kılmak için parantezleri kullanın. Parantez içindeki her şey tek bir değer vermek üzere değerlendirilir. Bu değer, bu parantezlerin dışındaki tüm işleçler tarafından kullanılabilir.

Örneğin, aşağıdaki SET deyimde kullanılan ifadede çarpma işleci toplama işlecinden daha yüksek önceliğe sahiptir. Çarpma işlemi önce değerlendirilir; ifade sonucu şeklindedir 13.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * 4 + 5;  
-- Evaluates to 8 + 5 which yields an expression result of 13.  
SELECT @MyNumber;  

Aşağıdaki SET deyimde kullanılan ifadede, parantezler önce toplamanın değerlendirilmesine neden olur. İfade sonucu şeklindedir 18.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * (4 + 5);  
-- Evaluates to 2 * 9 which yields an expression result of 18.  
SELECT @MyNumber;  

bir ifade iç içe parantezlere sahipse, önce en derin iç içe ifade değerlendirilir. Aşağıdaki örnek, ifadesi 5 - 3 en derin iç içe parantez kümesinde olan iç içe parantezler içerir. Bu ifade değerini 2verir. Ardından toplama işleci (+) değerini veren 4bu sonucu 6 ekler. Son olarak, 6 ifadesinin sonucunu 2vermek için ile çarpılır12.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * (4 + (5 - 3) );  
-- Evaluates to 2 * (4 + 2) which then evaluates to 2 * 6, and   
-- yields an expression result of 12.  
SELECT @MyNumber;  

Ayrıca Bkz.

Mantıksal İşleçler (Transact-SQL)
İşleçler (Transact-SQL)
Yerleşik İşlevler (Transact-SQL)