适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric 中的 SQL 分析终结点
Microsoft Fabric 中的仓库
Microsoft Fabric 预览版中的 SQL 数据库
返回数值表达式的值的负值(一元运算符)。 一元运算符只对一个表达式执行操作,该表达式可以是 numeric 数据类型类别中的任何一种数据类型。
| Operator | Meaning |
|---|---|
| + (一元正) | 数值为正。 |
| - (一元负) | 数值为负。 |
| ~(位非) | 返回数字的补数。 |
+ (正)和-(负)运算符可用于数值数据类型类别的任何数据类型的任何表达式。
~ 运算符NOT只能用于整数数据类型类别的任何一种数据类型的表达式。
Syntax
- numeric_expression
Arguments
numeric_expression
数值数据类型类别的任何数据类型的任何有效 表达式 (日期和时间类别除外)。
Return types
返回 numeric_expression的数据类型,但未签名的 tinyint 表达式被提升为有符号 的 smallint 结果。
Examples
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)
本文中的代码示例使用 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. 返回列的负值
一元负反转列值的数值运算符。 因此,负值从正值返回,正值从负值返回。
下面的示例返回 BaseRate 表中每位员工的 DimEmployee 值的负值。
USE ssawPDW;
GO
SELECT - BaseRate
FROM DimEmployee;