Pierwszeństwo operatorów (Transact-SQL)
Kiedy złożone wyrażenie ma wiele operatorów, pierwszeństwo operator zależy od kolejności, w którym wykonywane są operacje.Kolejność wykonywania może znacząco wpłynąć na wartość wynikową.
Operatorzy mają poziomy priorytetu, przedstawione w poniższej tabela.operator na wyższych poziomach jest sprawdzane przed operator na niższym poziom.
Level |
Operatory |
---|---|
1 |
~ (Bitowe NOT) |
2 |
* (Mnożenie) / (dzielenie) % (Modulo) |
3 |
+ (Dodatnie),-(ujemne) + (Dodaj) (+ złączanie),-(odejmowanie), & (iloczynu (AND),) ^ (bitowe wyłączne OR), | (Logiczną lub) |
4 |
=, >, <, >=, <=, <>, !=, !>, !< (Operatory porównania) |
5 |
NIE |
6 |
ORAZ |
7 |
WSZYSTKIE, MIĘDZY NIMI, W PROGRAMIE, JAK, EWENTUALNIE NIEKTÓRE |
8 |
= (Przydział) |
Gdy dwa operatory wyrażenie mają ten sam priorytet operator poziom, są one wykonywane od lewej do prawej na podstawie ich położenia w wyrażenie.Na przykład w wyrażenie użyte w następującej SET instrukcja, operator odejmowania jest sprawdzane przed operatordodawania.
DECLARE @MyNumber int
SET @MyNumber = 4 - 2 + 27
-- Evaluates to 2 + 27 which yields an expression result of 29.
SELECT @MyNumber
Aby zastąpić zdefiniowane priorytet operatorów w wyrażenie, należy używać nawiasów.Wszystko w nawiasie sprawdzane jest najpierw na plon pojedynczej wartości przed wartość może być używana przez dowolny operator poza nawiasami.
Na przykład w wyrażenie użyte w następującej SET instrukcja, operator mnożenia ma wyższy priorytet niż operatordodawania.W związku z tym zostanie ona potraktowana pierwszy; wynikiem wyrażenie jest 13.
DECLARE @MyNumber int
SET @MyNumber = 2 * 4 + 5
-- Evaluates to 8 + 5 which yields an expression result of 13.
SELECT @MyNumber
wyrażenie używane w następujących SETinstrukcjanawiasy spowodować dodanie najpierw przeprowadzić. Wynikiem wyrażenie jest 18.
DECLARE @MyNumber int
SET @MyNumber = 2 * (4 + 5)
-- Evaluates to 2 * 9 which yields an expression result of 18.
SELECT @MyNumber
Jeśli wyrażenie zawiera zagnieżdżone nawiasy, najbardziej głęboko zagnieżdżonych wyrażenie jest sprawdzane jako pierwsze.Poniższy przykład zawiera zagnieżdżone nawiasy z wyrażenie 5 - 3 w najbardziej głęboko zagnieżdżonych zestaw nawiasów.To wyrażenie zwraca wartość 2.Następnie operator dodawania (+) dodaje wynik ten 4.Daje to wartość 6.Wreszcie 6 jest mnożona przez 2 do dają wynik wyrażenie 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
Zobacz także