İşleç önceliği (Transact-SQL)
Birden çok işleçler, işleç önceliği karmaşık ifade olduğunda işlemlerinin gerçekleştirildiği sırasını belirler.Yürütme sırasını, sonuç değeri olarak önemli ölçüde etkileyebilir.
İşleçler aşağıdaki tablogösterildiği öncelik düzeylerine sahiptir.Üst düzey bir işleç , alt düzeybir işleç önce değerlendirilir.
Level |
İşleçler |
---|---|
1 |
~ (Bitwise not) |
2 |
* (Çarpma), / (bölü) % (modül) |
3 |
+ (Artı),-(eksi) + (Ekle), (+ bir arada),-(çıkarma), & (Bitwise ve) ^ (Bitsel özel ya), | (Bit düzey veya) |
4 |
=, >, <, >=, <=, <>, !=, !>, !< (Karşılaştırma işleçleri) |
5 |
NOT |
6 |
AND |
7 |
TÜM, TÜM, ARASINDA İÇİNDE İSTER, YA DA, BAZI |
8 |
= (Atama) |
Bir ifade iki işleç aynı işleç öncelik düzeyvarsa, soldan sağa ifadeiçindeki konumlarını esas değerlendirilme.Aşağıda, kullanılan örnek ifade SET deyim, çıkarma işleç , işleçönce hesaplanýr.
DECLARE @MyNumber int
SET @MyNumber = 4 - 2 + 27
-- Evaluates to 2 + 27 which yields an expression result of 29.
SELECT @MyNumber
Bir ifadeişleçleri tanımlanmış önceliği geçersiz kılmak için parantez kullanın.Parantez içindeki her şeyi ilk önce tek bir değer değer herhangi bir işleç parantez dışında tarafından kullanılabilir verecek biçimde değerlendirilir.
Örneğin, aşağıda, kullanılan ifade SET deyim, çarpma işleç toplama işleçdaha yüksek önceliğe sahiptir.Bu nedenle, ilk olarak değerlendirilmesi; 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ğıda, kullanılan ifade SET deyim, parantez neden önce gerçekleştirilecek toplama.ifade sonucu 18.
DECLARE @MyNumber int
SET @MyNumber = 2 * (4 + 5)
-- Evaluates to 2 * 9 which yields an expression result of 18.
SELECT @MyNumber
Bir ifade parantez içinde yuvalanmış, en iç içe ifade ilk olarak değerlendirilir.Aşağıdaki örnek, iç içe ayraçları ifadeiçerir5 - 3 en iç içe küme parantez. Bu ifade değeri üretir 2.Daha sonra toplama işleç (+) bu sonuca ekler 4.Bu değeri üretir 6.Son olarak, 6 çarpılarak 2 bir ifade sonucunu verim 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
Ayrıca bkz.