Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
När ett komplext uttryck innehåller flera operatorer avgör operatorprioriteten sekvensen av åtgärder. Körningsordningen kan avsevärt påverka det resulterande värdet.
Operatorerna har de prioritetsnivåer som visas i följande tabell. En operator på en högre nivå utvärderas före en operator på en lägre nivå. I följande tabell är 1 den högsta nivån och 8 är den lägsta nivån.
| Level | Operators |
|---|---|
| 1 |
~ (bitvis NOT) |
| 2 |
* (multiplikation), / (division), % (modulus) |
| 3 |
+ (positiv), - (negativ), + (addition), + (sammanlänkning), - (subtraktion), & (bitvis AND), ^ (bitvis exklusiv OR), | (bitvis OR), << (bitvis vänster skift), >> (bitvis höger skift) |
| 4 |
=, >, <, >=, <=, <>, !=, , !>( !< jämförelseoperatorer) |
| 5 | NOT |
| 6 | AND |
| 7 |
ALL, ANY, BETWEEN, IN, LIKE, ORSOME |
| 8 |
= (tilldelning) |
| Level | Operators |
|---|---|
| 1 |
~ (bitvis NOT) |
| 2 |
* (multiplikation), / (division), % (modulus) |
| 3 |
+ (positiv), - (negativ), + (addition), + (sammanlänkning), - (subtraktion), & (bitvis AND), ^ (bitvis exklusiv OR), | (bitvis OR) |
| 4 |
=, >, <, >=, <=, <>, !=, , !>( !< jämförelseoperatorer) |
| 5 | NOT |
| 6 | AND |
| 7 |
ALL, ANY, BETWEEN, IN, LIKE, ORSOME |
| 8 |
= (tilldelning) |
När två operatorer i ett uttryck har samma prioritetsnivå sker utvärderingen från vänster till höger baserat på deras position i uttrycket. I uttrycket som används i följande SET -instruktion utvärderas till exempel subtraktionsoperatorn före additionsoperatorn.
DECLARE @MyNumber AS INT;
SET @MyNumber = 4 - 2 + 27;
-- Evaluates to 2 + 27 which yields an expression result of 29.
SELECT @MyNumber;
Använd parenteser för att åsidosätta operatorernas definierade prioritet i ett uttryck. Allt inom parenteser utvärderas för att ge ett enda värde. Alla operatorer utanför dessa parenteser kan använda det värdet.
I uttrycket som används i följande SET instruktion har till exempel multiplikationsoperatorn högre prioritet än additionsoperatorn. Multiplikationsåtgärden utvärderas först. Uttrycksresultatet är 13.
DECLARE @MyNumber AS INT;
SET @MyNumber = 2 * 4 + 5;
-- Evaluates to 8 + 5 which yields an expression result of 13.
SELECT @MyNumber;
I uttrycket som används i följande SET instruktion gör parenteserna att tillägget utvärderas först. Uttrycksresultatet är 18.
DECLARE @MyNumber AS INT;
SET @MyNumber = 2 * (4 + 5);
-- Evaluates to 2 * 9 which yields an expression result of 18.
SELECT @MyNumber;
Om ett uttryck har kapslade parenteser utvärderas det mest kapslade uttrycket först. Följande exempel innehåller kapslade parenteser, med uttrycket 5 - 3 i den mest djupt kapslade uppsättningen parenteser. Det här uttrycket ger värdet 2. Sedan lägger additionsoperatorn (+) till det här resultatet till 4, vilket ger värdet 6. Slutligen 6 multipliceras 2 med för att ge ett uttrycksresultat av 12.
DECLARE @MyNumber AS 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;