Udostępnij za pośrednictwem


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