Udostępnij za pomocą


Pierwszeństwo operatora (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Gdy wyrażenie złożone ma wiele operatorów, pierwszeństwo operatora określa sekwencję operacji. Kolejność wykonywania może znacząco wpłynąć na wynikowej wartości.

Operatory mają poziomy pierwszeństwa pokazane w poniższej tabeli. Operator na wyższych poziomach jest oceniany przed operatorem na niższym poziomie. W poniższej tabeli 1 jest najwyższym poziomem, a 8 jest najniższym poziomem.

Level Operators
1 ~ (Bitowe NIE)
2 * (mnożenie), / (Dzielenie), % (Modulus)
3 + (dodatnie), - (ujemne), + (dodawanie), + (łączenie), - (odejmowanie), & (bitowe i), ^ (bitowe wykluczające LUB), | (Bitowe LUB)
4 =, >, <= , >=, <<>, !=, !>, !< (operatory porównania)
5 NOT
6 AND
7 WSZYSTKO, WSZYSTKO POMIĘDZY, W JAKBY, ALBO COŚ
8 = (Przypisanie)

Gdy dwa operatory w wyrażeniu mają ten sam poziom pierwszeństwa, są obliczane od lewej do prawej na podstawie ich pozycji w wyrażeniu. Na przykład w wyrażeniu, które jest używane w poniższej SET instrukcji, operator odejmowania jest obliczany przed operatorem dodawania.

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

Użyj nawiasów, aby zastąpić zdefiniowany pierwszeństwo operatorów w wyrażeniu. Wszystkie elementy w nawiasach są oceniane w celu uzyskania pojedynczej wartości. Ta wartość może być używana przez dowolny operator poza tymi nawiasami.

Na przykład w wyrażeniu użytym w poniższej SET instrukcji operator mnożenia ma wyższy priorytet niż operator dodawania. Najpierw obliczana jest operacja mnożenia; wynik wyrażenia to 13.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * 4 + 5;  
-- Evaluates to 8 + 5 which yields an expression result of 13.  
SELECT @MyNumber;  

W wyrażeniu użytym w poniższej SET instrukcji nawiasy powodują, że dodanie zostanie ocenione jako pierwsze. Wynik wyrażenia to 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 ma zagnieżdżone nawiasy, najbardziej głęboko zagnieżdżone wyrażenie jest oceniane jako pierwsze. Poniższy przykład zawiera zagnieżdżone nawiasy z wyrażeniem 5 - 3 w najbardziej zagnieżdżonym zestawie nawiasów. To wyrażenie zwraca wartość 2. Następnie operator dodawania (+) dodaje ten wynik, do 4 którego daje wartość 6. Na koniec parametr jest mnożony przez polecenie , 6 aby uzyskać wynik 2wyrażenia .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 też

Operatory logiczne (Transact-SQL)
Operatory (Transact-SQL)
Wbudowane funkcje (Transact-SQL)