Operadores unários - Negativo (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Devolve o negativo do valor de uma expressão numérica (um operador unário). Os operadores unários executam 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
+ (Unary positivo) O valor numérico é positivo.
- (Unary negativo) O valor numérico é negativo.
~ (Bitwise NÃO) Devolve o complemento do número.

Os + operadores (positivo) e - (negativo) 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 NOT) pode ser usado somente em expressões de qualquer um dos tipos de dados da categoria de tipo de dados inteiro.

Transact-SQL convenções de sintaxe

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éricos, exceto a categoria de data e hora.

Tipos de devolução

Retorna o tipo de dados de numeric_expression, exceto que uma expressão tinyint não assinada é promovida para um resultado smallint assinado.

Examples

A. Definir uma variável como 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

Aqui está 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

Aqui está o conjunto de resultados.

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

Exemplos: Azure Synapse Analytics

Os exemplos de código neste artigo utilizam a AdventureWorks2025 base de dados de exemplos ORAdventureWorksDW2025, que pode descarregar do repositório GitHub do Azure Data SQL Samples Repository.

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;

Aqui está 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;

Aqui está 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;

Aqui está o conjunto de resultados.

17

E. Retornar o negativo de uma coluna

O negativo unário 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 BaseRate valor para cada funcionário na DimEmployee tabela.

USE ssawPDW;
GO

SELECT - BaseRate
FROM DimEmployee;