一元运算符 - 负值

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库

返回数值表达式的值的负值(一元运算符)。 一元运算符只对一个表达式执行操作,该表达式可以是 numeric 数据类型类别中的任何一种数据类型。

运算符 含义
+(正) 数值为正。
-(负) 数值为负。
~(位非) 返回数字的非。

+(正)和 -(负)运算符可以用于 numeric 数据类型类别中任一数据类型的任意表达式。 ~ (位非)运算符只能用于整数数据类型类别中任一数据类型的表达式。

Transact-SQL 语法约定

语法

- numeric_expression  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

numeric_expression
数值数据类型类别中任何数据类型(日期和时间类别除外)的任何有效表达式

结果类型

除了无符号 tinyint 表达式被提升为有符号的 smallint 结果之外,返回 numeric_expression 的数据类型

示例

A. 将一个变量设置为负值

以下示例将一个变量设置为负值。

USE tempdb;  
GO  
DECLARE @MyNumber DECIMAL(10,2);  
SET @MyNumber = -123.45;  
SELECT @MyNumber AS NegativeValue;  
GO  

下面是结果集:

NegativeValue  
---------------------------------------  
-123.45  
  
(1 row(s) affected)  
  

B. 将一个变量更改为负值

以下示例将一个变量更改为负值。

USE tempdb;  
GO  
DECLARE @Num1 INT;  
SET @Num1 = 5;  
SELECT @Num1 AS VariableValue, -@Num1 AS NegativeValue;  
GO  

下面是结果集。

VariableValue NegativeValue  
------------- -------------  
5             -5  
  
(1 row(s) affected)  
  

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

C. 返回正常量的负值

下面的示例返回正常量的负值。

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

返回

-17  

D. 返回负常量的正值

下面的示例返回负常量的正值。

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

返回

17  

E. 返回列的负值

下面的示例返回 dimEmployee 表中每位员工的 BaseRate 值的负值。

USE ssawPDW;  
  
SELECT - BaseRate FROM DimEmployee;  

另请参阅

数据类型 (Transact-SQL)
表达式(Transact-SQL)
运算符 (Transact-SQL)