SQL中计算绝对值使用ABS()函数,语法为ABS(numeric_expression),可对整数、小数等数值表达式求绝对值;常用于查询金额绝对值、条件筛选(如ABS(amount)>100)、计算差值绝对值(如ABS(price_a-price_b))等场景;支持MySQL、PostgreSQL、SQL Server、Oracle等主流数据库,传入非数值类型可能报错,NULL返回NULL。

SQL 中计算绝对值使用 ABS() 函数。这个函数接收一个数值表达式作为参数,返回该数值的绝对值,也就是去掉负号后的非负值。
ABS() 函数基本语法
ABS(numeric_expression)
其中 numeric_expression 是一个可以是整数、小数或常量的数值表达式。
常见使用场景与示例
假设有一个表 transactions,包含字段 amount,记录了交易金额(正数为收入,负数为支出):
- 想查看所有金额的绝对值: SELECT ABS(amount) AS absolute_amount FROM transactions;
- 在条件中使用:找出金额绝对值大于 100 的记录: SELECT * FROM transactions WHERE ABS(amount) > 100;
- 用于计算差值的绝对值,例如比较两个字段的差距: SELECT ABS(price_a - price_b) AS price_difference FROM products;
注意事项
ABS() 支持大多数主流数据库系统,包括 MySQL、PostgreSQL、SQL Server、Oracle 等。但传入非数值类型可能导致错误或隐式转换,建议确保输入为数值型数据。
如果传入 NULL,ABS() 返回结果也是 NULL。
基本上就这些,用起来很简单,关键是在需要忽略正负符号时派上用场。










