一元运算符 - 正数 (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库

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

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

+ (正)和-(负)运算符可用于数值数据类型类别的任何数据类型的任何表达式。 ~ 运算符NOT只能用于整数数据类型类别的任何一种数据类型的表达式。

Transact-SQL 语法约定

语法

+ numeric_expression

参数

numeric_expression

数值数据类型类别中任一数据类型的任何有效表达式,日期时间smalldatetime 数据类型除外

返回类型

返回 numeric_expression的数据类型。

备注

尽管一元加号可以出现在任何数值表达式之前,但它对表达式返回的值不执行操作。 具体而言,它不会返回负表达式的正值。 若要返回负表达式的正值,请使用 ABS 函数。

示例

A. 将变量设置为正值

以下示例将变量设置为正值。

USE tempdb;
GO

DECLARE @MyNumber DECIMAL(10, 2);
SET @MyNumber = + 123.45;

SELECT @MyNumber AS PositiveValue;
GO

结果集如下。

PositiveValue
--------------
123.45

B. 将一元加运算符与负值一起使用

以下示例演示如何对同一负表达式使用一元加和负表达式和 ABS 函数。 一元加值不会影响表达式,但 ABS() 函数返回表达式的正值。

USE tempdb;
GO

DECLARE @Num1 INT;
SET @Num1 = -5;

SELECT + @Num1 AS NegativeValue,
    ABS(@Num1) AS PositiveValue;
GO

结果集如下。

NegativeValue  PositiveValue
-------------- --------------
-5             5