一元运算符 - 负数 (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 中的 SQL 终结点 Microsoft Fabric 中的仓库 Microsoft Fabric SQL 数据库
返回数值表达式的值的负值(一元运算符)。 一元运算符只对一个表达式执行操作,该表达式可以是 numeric 数据类型类别中的任何一种数据类型。
运算符 | 含义 |
---|---|
+ (一元正) | 数值为正。 |
- (一元负) | 数值为负。 |
~(位非) | 返回数字的补数。 |
+
(正)和-
(负)运算符可用于数值数据类型类别的任何数据类型的任何表达式。 ~
运算符NOT
只能用于整数数据类型类别的任何一种数据类型的表达式。
语法
- numeric_expression
参数
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
B. 将变量更改为负值
以下示例将一个变量更改为负值。
USE tempdb;
GO
DECLARE @Num1 INT;
SET @Num1 = 5;
SELECT @Num1 AS VariableValue,
-@Num1 AS NegativeValue;
GO
结果集如下。
VariableValue NegativeValue
------------- -------------
5 -5
示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
本文中的 Transact-SQL 代码示例使用 AdventureWorks2022
或 AdventureWorksDW2022
示例数据库,可从 Microsoft SQL Server 示例和社区项目主页下载它。
°C 返回正常量的负值
下面的示例返回正常量的负值。
USE ssawPDW;
GO
SELECT TOP (1) - 17 FROM DimEmployee;
结果集如下。
-17
请注意返回的结果与将一元负值应用于具有一 元一元运算符的值相同 - 应用正 值。
USE ssawPDW;
GO
SELECT TOP (1) - (+ 17)
FROM DimEmployee;
结果集如下。
-17
D. 返回负常数的正值
下面的示例返回负常量的正值。
USE ssawPDW;
GO
SELECT TOP (1) - (- 17)
FROM DimEmployee;
结果集如下。
-17
E. 返回列的负值
一元负反转列值的数值运算符。 因此,负值从正值返回,正值从负值返回。
下面的示例返回 DimEmployee
表中每位员工的 BaseRate
值的负值。
USE ssawPDW;
GO
SELECT - BaseRate
FROM DimEmployee;