一元运算符 - 正

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsMicrosoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库

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

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

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

Transact-SQL 语法约定

语法

+ numeric_expression  

注意

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

参数

numeric_expression
具有数值数据类型类别中任一数据类型(datetime 和 smalldatetime 数据类型除外)的任何有效表达式

结果类型

返回 numeric_expression的数据类型。

备注

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

示例

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

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

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

下面是结果集:

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

B. 将一元加号运算符用于负值

以下示例显示了如何将一元加号用于负表达式和将 ABS() 函数用于同一负表达式上。 一元加号不影响该表达式,但 ABS 函数将返回该表达式的正值。

USE tempdb;  
GO  
DECLARE @Num1 INT;  
SET @Num1 = -5;  
SELECT +@Num1, ABS(@Num1);  
GO  

下面是结果集:

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

另请参阅

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