ABS (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
返回指定数值表达式的绝对值(正值)的数学函数。 (ABS
将负值更改为正值。ABS
对零或正值没有影响。)
语法
ABS ( numeric_expression )
参数
numeric_expression
精确数值或近似数值数据类型类别的表达式。
返回类型
返回类型取决于 numeric_expression 的输入类型:
输入类型 | 返回类型 |
---|---|
float、real | float |
decimal(p, s) | decimal(38, s) |
int、smallint、tinyint | int |
bigint | bigint |
money、 smallmoney | money |
bit | float |
如果结果与返回类型不匹配,将发生算术溢出错误。
示例
此示例显示了对三个不同数字使用 ABS
函数所得的结果。
SELECT ABS(-1.0), ABS(0.0), ABS(1.0);
结果集如下。
---- ---- ----
1.0 .0 1.0
当一个数的绝对值超出指定数据类型所能表示的最大数时,ABS
函数可能产生溢出错误。 例如,int
数据类型的值范围是 -2,147,483,648
到 2,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)