Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric
Quando uma expressão complexa contém vários operadores, a precedência do operador determina a sequência de operações. A ordem de execução pode afetar o valor resultante significativamente.
Os níveis de precedência dos operadores são mostrados na tabela a seguir. Um operador em um nível mais alto é avaliado antes de um operador em um nível inferior. Na tabela a seguir, 1 é o nível mais alto e 8 é o nível mais baixo.
| Level | Operators |
|---|---|
| 1 |
~ (bit a bit NOT) |
| 2 |
* (multiplicação), / (divisão), % (módulo) |
| 3 |
+ (positivo), - (negativo), + (adição), + (concatenação), - (subtração), & (bit a bit AND), ^ (exclusivo ORbit a bit), | (bit a ORbit), << (deslocamento bit a bit esquerdo) >> (deslocamento bit a bit para a direita) |
| 4 |
=, >, <, >=, <=, , <>, !=, !>, !< (operadores de comparação) |
| 5 | NOT |
| 6 | AND |
| 7 |
ALL, ANY, BETWEEN, IN, , LIKE, OR, SOME |
| 8 |
= (atribuição) |
| Level | Operators |
|---|---|
| 1 |
~ (bit a bit NOT) |
| 2 |
* (multiplicação), / (divisão), % (módulo) |
| 3 |
+ (positivo), - (negativo), + (adição), + (concatenação), - (subtração), & (bit a bit AND), ^ (exclusivo ORbit a bit), | (bit a bit OR) |
| 4 |
=, >, <, >=, <=, , <>, !=, !>, !< (operadores de comparação) |
| 5 | NOT |
| 6 | AND |
| 7 |
ALL, ANY, BETWEEN, IN, , LIKE, OR, SOME |
| 8 |
= (atribuição) |
Quando dois operadores em uma expressão têm o mesmo nível de precedência, a avaliação ocorre da esquerda para a direita com base em sua posição na expressão. Por exemplo, na expressão usada na instrução a seguir SET , o operador de subtração é avaliado antes do operador de adição.
DECLARE @MyNumber AS INT;
SET @MyNumber = 4 - 2 + 27;
-- Evaluates to 2 + 27 which yields an expression result of 29.
SELECT @MyNumber;
Use parênteses para substituir a precedência definida dos operadores em uma expressão. Tudo dentro dos parênteses é avaliado para produzir um único valor. Qualquer operador fora desses parênteses pode usar esse valor.
Por exemplo, na expressão usada na seguinte instrução SET, o operador de multiplicação tem uma precedência maior que o operador de adição. A operação de multiplicação é avaliada primeiro. O resultado da expressão é 13.
DECLARE @MyNumber AS INT;
SET @MyNumber = 2 * 4 + 5;
-- Evaluates to 8 + 5 which yields an expression result of 13.
SELECT @MyNumber;
Na expressão usada na seguinte instrução SET, os parênteses fazem a adição ser avaliada primeiro. O resultado da expressão é 18.
DECLARE @MyNumber AS INT;
SET @MyNumber = 2 * (4 + 5);
-- Evaluates to 2 * 9 which yields an expression result of 18.
SELECT @MyNumber;
Se uma expressão tiver parênteses aninhados, a expressão mais aninhada será avaliada primeiro. O exemplo a seguir contém parênteses aninhados, com a expressão 5 - 3 no conjunto de parênteses mais aninhado. Essa expressão gera um valor de 2. Em seguida, o operador de adição (+) adiciona esse resultado a 4, o que gera um valor de 6. Finalmente, os 6 são multiplicados por 2 para gerar um resultado de expressão de 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;