Aracılığıyla paylaş


Işleç önceliği (Transact-SQL)

Karmaşık ifade birden çok işleçler, işleç önceliğine operasyonlar gerçekleştirildiği sırasını belirler.Yürütme sırasını, sonuç değeri olarak önemli ölçüde etkileyebilir.

Işleçler aşağıdaki tabloda gösterilen öncelik düzeyi vardır.Daha yüksek düzeyde bir işleç, daha düşük düzeydeki bir işlecinden önce değerlendirilir.

Level

İşleçler

1

~ (Bitwise NOT)

2

* (Çarpma) / (bölme) % (mod)

3

+ (Pozitif),-(negatif) + (Ekle) (+ bağlamak),-(çıkar) & (Bitwise VE) ^ (Bitsel Exclusive OR), | (Bit düzey VEYA)

4

=, >, <, >=, <=, <>, !=, !>, !< (Karşılaştırma işleçleri)

5

NOT

6

AND

7

TÜM, TÜM, ARASINDA DE, İSTER, VEYA, BAZI

8

(Atama) =

Iki ifade işleçleri aynı işleç öncelik düzey varsa, bunlar soldan sağa deyimdeki konumlarına göre değerlendirilir.Örneğin, aşağıdaki kullanılan deyimde SET ifade, çıkarma işleç ek önce değerlendirilir işleç.

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

Işleçlerin içinde tanımlı olan önceliği geçersiz kılmak için ayraç kullanan bir ifade.Parantez içindeki her şeyi önce tek bir değer, değeri parantez dışında herhangi bir işleç olarak kullanılabilir getirebilecek için önce değerlendirilir.

Örneğin, aşağıdaki kullanılan ifade SET ifade, çarpma işleç, toplama işlecini daha yüksek bir önceliğe sahiptir. Bu nedenle, önce değerlendirilir; ifade sonucu 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 kullanılan deyim SET ifade, ayraç önce gerçekleştirilecek ek neden. ifade Sonucu 18.

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

Varsa bir ifade parantez içinde en fazla iç içe yuvalanmış ifade önce değerlendirilir.Aşağıdaki örnek, iç içe geçmiş ayraçları ifade içerir. 5 - 3 en çok derine yuvalanmış içinde küme ayraç. Bu ifadenin değeri verir... 2. Daha sonra toplama işlecini (+) bu sonucu ekler. 4. Bu değeri verir. 6. Son olarak, 6 çarpılır 2 ifade sonucunu getirebilecek için 12.

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