SQLServer中函数ABS返回指定数值表达式的绝对值(正值)的数学函数。

SQLServer中函数ABS返回指定数值表达式的绝对值(正值)的数学函数。

适用于:

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

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

1、语法

ABS ( numeric_expression )

2、参数

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

3、返回类型

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

输入类型返回类型
float、realfloat
decimal(p, s)decimal(38, s)
int、smallint、tinyintint
bigintbigint
money、 smallmoneymoney、 smallmoney
bitbit
如果结果与返回类型不匹配,将发生算术溢出错误。

4、示例

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

SELECT ABS(-1.0) as v1, ABS(0.0) as v2, ABS(1.0) as v3;
-- 返回执行结果
v1                                      v2                                      v3
--------------------------------------- --------------------------------------- ---------------------------------------
1.0                                     0.0                                     1.0

(1 行受影响)

当一个数的绝对值超出指定数据类型所能表示的最大数时,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
-- 返回以下错误消息:将表达式转换为数据类型 int 时发生算术溢出错误。
消息 8115,级别 16,状态 2,第 1743 行
Arithmetic overflow error converting expression to data type int.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值