Partilhar via


Operadores unários - Negativo (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade 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 and Analytics Platform System (PDW)

Os exemplos de código neste artigo usam o banco de dados de exemplo AdventureWorks2025 ou AdventureWorksDW2025, que pode ser descarregado da página inicial de Exemplos e Projetos da Comunidade do Microsoft SQL Server.

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;