ABS (Transact-SQL)

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

返回指定数值表达式的绝对值(正值)的数学函数。 (ABS 将负值更改为正值。ABS 对零或正值没有影响。)

Transact-SQL 语法约定

语法

ABS ( numeric_expression )  

注意

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

自变量

numeric_expression
精确数值或近似数值数据类型类别的表达式。

返回类型

返回类型取决于 numeric_expression 的输入类型:

输入类型 返回类型
floatreal float
decimal(p, s) decimal(38, s)
intsmallinttinyint int
bigint bigint
moneysmallmoney money
bit float

如果结果与返回类型不匹配,将发生算术溢出错误。

示例

此示例显示了对三个不同数字使用 ABS 函数所得的结果。

SELECT ABS(-1.0), ABS(0.0), ABS(1.0);  

下面是结果集。

---- ---- ----  
1.0  .0   1.0  

当一个数的绝对值超出指定数据类型所能表示的最大数时,ABS 函数可能产生溢出错误。 例如,int 数据类型的值范围是 -2,147,483,6482,147,483,647。 计算有符号整数 -2,147,483,648 的绝对值将导致溢出错误,因为其绝对值已超出 int 数据类型的正值范围限制。

DECLARE @i INT;  
SET @i = -2147483648;  
SELECT ABS(@i);  
GO  

返回以下错误消息:

“Msg 8115,级别 16,状态 2,第 3 行”

“将表达式转换为数据类型 int 时发生算术溢出错误。”

另请参阅

CAST 和 CONVERT (Transact-SQL)
数据类型 (Transact-SQL)
数学函数 (Transact-SQL)
内置函数 (Transact-SQL)