Operator Precedence (Transact-SQL)
Kiedy złożone wyrażenie ma wiele operator, pierwszeństwo operator określa kolejność, w którym wykonywane są operacje.Kolejność wykonywania może w znaczący sposób wpływać na wartość wynikową.
Operatorzy mają poziomy priorytetu, pokazane w poniższej tabela.Operator na wyższych poziomach jest sprawdzane przed operatorem na niższym poziomie.
Level |
Operatory |
---|---|
1 |
~ (Bitowe NOT) |
2 |
* (Mnożenie) / (dział) % (modulo) |
3 |
+ (Dodatnie),-(minus) + (Dodawanie) (+ złączyć),-(odejmować) & (I bitowe) ^ (bitowe lub wyłączności), | (lub bitowe) |
4 |
=, >, <, >=, <=, <>, !=, !>, !< (Operatory porównania) |
5 |
NIE |
6 |
ORAZ |
7 |
WSZYSTKIE, MIĘDZY NIMI, W PROGRAMIE, JAK, LUB, NIEKTÓRE |
8 |
= (Przydział) |
Jeśli dwa operatory w wyrażenie mają ten sam poziom pierwszeństwa operator, one są obliczane od lewej do prawej na podstawie ich pozycji w wyrażenie.Na przykład w wyrażenie używany w następujących SET Instrukcja operator odejmowania są sprawdzane przed operatora dodawania.
DECLARE @MyNumber int
SET @MyNumber = 4 - 2 + 27
-- Evaluates to 2 + 27 which yields an expression result of 29.
SELECT @MyNumber
Należy używać nawiasów, aby zastąpić zdefiniowane pierwszeństwo operatorów w wyrażenie.Wszystkie elementy w nawiasie sprawdzana jest zgodność najpierw aby dawała pojedynczą wartość przed wartość może być używana przez każdy podmiot spoza nawiasów.
Na przykład w wyrażenie używane w następujących SET Instrukcja, operator mnożenia ma wyższy priorytet niż operator dodawania. Dlatego jest obliczana jako pierwsza, jest wynik wyrażenie 13.
DECLARE @MyNumber int
SET @MyNumber = 2 * 4 + 5
-- Evaluates to 8 + 5 which yields an expression result of 13.
SELECT @MyNumber
W wyrażenie używane w następujących SET Instrukcja, nawiasy powoduje dodanie należy najpierw wykonać. W efekcie wyrażenie 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, najpierw jest obliczane wyrażenie najbardziej głęboko zagnieżdżonych.Poniższy przykład zawiera zagnieżdżone nawiasy z wyrażeniem 5 - 3 zestaw najbardziej głęboko zagnieżdżonych nawiasów. To wyrażenie zwraca wartość 2. Następnie należy (operator dodawania+) dodaje ten wynik 4. Ta daje w wyniku wartość 6. Wreszcie 6 jest mnożona przez 2 aby dawała 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
See Also