适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统(PDW)
Microsoft Fabric 中的 SQL 分析终结点
Microsoft Fabric 中的仓库
Microsoft Fabric 中的 SQL 数据库
返回指定数值表达式的绝对值(正值)的数学函数。 (ABS 将负值更改为正值。ABS 对零或正值没有影响。)
语法
ABS ( numeric_expression )
参数
numeric_expression
精确数值或近似数值数据类型类别的表达式。
返回类型
返回类型取决于 numeric_expression 的输入类型:
| 输入类型 | 返回类型 |
|---|---|
| float、real | float |
| 十进制(p, s) | 十进制(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)