Anteckning
Å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 Förhandsversion av Microsoft Fabric
När ett komplext uttryck har flera operatorer avgör operatorprioriteten åtgärdssekvensen. 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å högre nivåer utvärderas före en operatör 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 inte) |
| 2 | * (Multiplikation), / (Division), % (Modulus) |
| 3 | + (positiv), - (negativ), + (addition), + (sammanlänkning), - (subtraktion), & (bitvis OCH), ^ (bitvis exklusiv ELLER), | (Bitvis ELLER) |
| 4 | =, >, <, >=, <=, <>, !=, !>, !< (jämförelseoperatorer) |
| 5 | NOT |
| 6 | AND |
| 7 | ALLA, ALLA, MELLAN, I, SOM, ELLER, VISSA |
| 8 | = (Assignment) |
När två operatorer i ett uttryck har samma prioritetsnivå utvärderas de 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 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. Det värdet kan användas av alla operatorer utanför dessa parenteser.
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. uttryckets resultat är 13.
DECLARE @MyNumber 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 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 4 det här resultatet som ger värdet 6. Slutligen 6 multipliceras 2 med för att ge ett uttrycksresultat av 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
Logiska operatorer (Transact-SQL)
Operators (Transact-SQL)
Inbyggda funktioner (Transact-SQL)