Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Quando uma expressão complexa tem vários operadores, a precedência do operador determina a sequência de operações. A ordem de execução pode afetar significativamente o valor resultante.
Os operadores têm os níveis de precedência mostrados na tabela a seguir. Um operador em níveis mais altos é avaliado antes de um operador em um nível mais baixo. Na tabela seguinte, 1 é o nível mais alto e 8 é o nível mais baixo.
| Level | Operators |
|---|---|
| 1 | ~ (Bitwise NÃO) |
| 2 | * (Multiplicação), / (Divisão), % (Módulo) |
| 3 | + (Positivo), - (Negativo), + (Adição), + (Concatenação), - (Subtração), & (Bitwise AND), ^ (Bitwise Exclusive OR), | (Bitwise OU) |
| 4 | =, >, <, >=, <=, <>, !=, !, !>< (Operadores de comparação) |
| 5 | NOT |
| 6 | AND |
| 7 | TODOS, QUALQUER, ENTRE, EM, COMO, OU, ALGUNS |
| 8 | = (Atribuição) |
Quando dois operadores em uma expressão têm o mesmo nível de precedência, eles são avaliados 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 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 entre parênteses é avaliado para produzir um único valor. Esse valor pode ser usado por qualquer operador fora desses parênteses.
Por exemplo, na expressão usada na instrução a seguir SET , o operador de multiplicação tem uma precedência maior do que o operador de adição. A operação de multiplicação é avaliada primeiro; O resultado da expressão é 13.
DECLARE @MyNumber INT;
SET @MyNumber = 2 * 4 + 5;
-- Evaluates to 8 + 5 which yields an expression result of 13.
SELECT @MyNumber;
Na expressão usada na instrução a seguir SET , os parênteses fazem com que a adição seja avaliada primeiro. O resultado da expressão é 18.
DECLARE @MyNumber 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 aninhada mais profundamente será avaliada primeiro. O exemplo a seguir contém parênteses aninhados, com a expressão 5 - 3 no conjunto de parênteses aninhado mais profundamente. Esta expressão produz um valor de 2. Em seguida, o operador de adição (+) adiciona esse resultado ao 4 qual produz um valor de 6. Finalmente, o 6 é multiplicado por 2 para produzir um resultado de expressão de 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;
Ver também
Operadores lógicos (Transact-SQL)
Operadores (Transact-SQL)
Funções incorporadas (Transact-SQL)