Operadores unários - Negativos (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBanco de dados SQL no Microsoft Fabric

Retorna o negativo do valor de uma expressão numérica (um operador unário). Os operadores unários desempenham uma operação em apenas uma expressão de qualquer um dos tipos de dados da categoria de tipo de dados numéricos.

Operator Meaning
+ (Unário positivo) Valor numérico é positivo.
- (Unário negativo) Valor numérico é negativo.
~ (Não de bit a bit) Retorna o complemento das unidades do número.

Os + operadores (positivos) e - (negativos) podem ser usados em qualquer expressão de qualquer um dos tipos de dados da categoria de tipo de dados numéricos. O ~ operador (bit a bit) NOTpode ser usado somente em expressões de qualquer um dos tipos de dados da categoria de tipo de dados inteiro.

Convenções de sintaxe de Transact-SQL

Syntax

- numeric_expression

Arguments

numeric_expression

Qualquer expressão válida de qualquer um dos tipos de dados da categoria de tipo de dados numérico, exceto a categoria de data e hora.

Tipos de retorno

Retorna o tipo de dados de numeric_expression, exceto que uma expressão tinyint sem sinal é promovida a um resultado smallint assinado.

Examples

A. Definir uma variável com um valor negativo

O exemplo a seguir define uma variável como um valor negativo.

USE tempdb;
GO

DECLARE @MyNumber DECIMAL(10, 2);
SET @MyNumber = -123.45;

SELECT @MyNumber AS NegativeValue;
GO

Veja a seguir o conjunto de resultados.

NegativeValue
--------------
-123.45

B. Alterar uma variável para um valor negativo

O exemplo a seguir altera uma variável para um valor negativo.

USE tempdb;
GO

DECLARE @Num1 INT;
SET @Num1 = 5;

SELECT @Num1 AS VariableValue,
    -@Num1 AS NegativeValue;
GO

Veja a seguir o conjunto de resultados.

VariableValue NegativeValue
------------- -------------
5             -5

Exemplos: Azure Synapse Analytics

Os exemplos de código neste artigo utilizam o AdventureWorks2025 banco de dados de exemplos de ORAdventureWorksDW2025, que você pode baixar do repositório GitHub do Repositório de Exemplos SQL do Azure Data.

C. Retornar o negativo de uma constante positiva

O exemplo a seguir retorna o negativo de uma constante positiva.

USE ssawPDW;
GO

SELECT TOP (1) - 17 FROM DimEmployee;

Veja a seguir o conjunto de resultados.

-17

O mesmo resultado é retornado como se o negativo unário fosse aplicado a um valor com operadores Unários unários – positivo aplicado.

USE ssawPDW;
GO

SELECT TOP (1) - (+ 17)
FROM DimEmployee;

Veja a seguir o conjunto de resultados.

-17

D. Retornar o positivo de uma constante negativa

O exemplo a seguir retorna o positivo de uma constante negativa.

USE ssawPDW;
GO

SELECT TOP (1) - (- 17)
FROM DimEmployee;

Veja a seguir o conjunto de resultados.

17

E. Retornar o negativo de uma coluna

A negativa unária inverte o operador numérico dos valores de uma coluna. Como resultado, os valores negativos são retornados de valores positivos e os valores positivos são retornados de valores negativos.

O exemplo a seguir retorna o negativo do valor de BaseRate para cada funcionário da tabela DimEmployee.

USE ssawPDW;
GO

SELECT - BaseRate
FROM DimEmployee;