Compartilhar via


Operadores unários - Negativos (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW) Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric Banco 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.

Operador Significado
+ (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

Sintaxe

- numeric_expression

Argumentos

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 retorno

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

Exemplos

R. 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 e PDW (Analytics Platform System)

Os exemplos de código do Transact-SQL deste artigo usa o banco de dados de exemplo AdventureWorks2022 ou AdventureWorksDW2022, que pode ser baixado da home page Microsoft SQL Server Samples and Community Projects.

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

Observe 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;