Sdílet prostřednictvím


Priorita operátorů (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Pokud má komplexní výraz více operátorů, priorita operátoru určuje posloupnost operací. Pořadí provádění může významně ovlivnit výslednou hodnotu.

Operátory mají úrovně priority uvedené v následující tabulce. Operátor na vyšších úrovních se vyhodnotí před operátorem na nižší úrovni. V následující tabulce je 1 nejvyšší úroveň a 8 je nejnižší úroveň.

Level Operators
1 ~ (bitový operátor NOT)
2 * (Násobení), / (Dělení), % (Moduly)
3 + (kladné), - (záporné), + (sčítání), + (zřetězení), - (odčítání), & (Bitwise AND), ^ (Bitové výhradní OR), | (Bitwise OR)
4 =, >, = <, >=, <<>, !=, !>, ! !< (relační operátory)
5 NOT
6 AND
7 VŠECHNY MEZI TÍM, V JAKÉM, NEBO NĚJAKÉM
8 = (úkol)

Pokud mají dva operátory ve výrazu stejnou úroveň priority, vyhodnotí se zleva doprava na základě jejich pozice ve výrazu. Například ve výrazu, který se používá v následujícím SET příkazu, se operátor odčítání vyhodnotí před operátorem sčítání.

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

Pomocí závorek můžete přepsat definovanou prioritu operátorů ve výrazu. Vše v závorkách se vyhodnocuje tak, aby přineslo jednu hodnotu. Tuto hodnotu může použít libovolný operátor mimo tyto závorky.

Například ve výrazu použitém v následujícím SET příkazu má operátor násobení vyšší prioritu než operátor sčítání. Operace násobení se vyhodnocuje jako první; výsledek výrazu je 13.

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

Ve výrazu použitém v následujícím SET příkazu způsobí závorky první vyhodnocení přidání. Výsledek výrazu je 18.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * (4 + 5);  
-- Evaluates to 2 * 9 which yields an expression result of 18.  
SELECT @MyNumber;  

Pokud má výraz vnořené závorky, vyhodnotí se jako první nejhůře vnořený výraz. Následující příklad obsahuje vnořené závorky s výrazem 5 - 3 v nejhlublejší sadě závorek. Tento výraz dává hodnotu 2. Operátor sčítání (+) pak přidá tento výsledek, který 4 vrátí hodnotu 6. Nakonec se vynásobí 62 výsledkem výrazu 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;  

Viz také

Logické operátory (Transact-SQL)
Operátory (Transact-SQL)
Předdefinované funkce (Transact-SQL)