ROUND函数用于数值四舍五入,语法为ROUND(numeric_expression, length);length为正时保留小数位,为负时对整数部分按位四舍五入,常用于控制数据精度和汇总统计。

在SQL中,ROUND 函数用于对数值进行四舍五入操作。它可以帮助我们在查询过程中控制小数位数,使结果更清晰、更符合业务需求。下面详细介绍 ROUND 函数的语法、用法以及常见场景。
ROUND函数的基本语法
ROUND(numeric_expression, length)
- numeric_expression:要四舍五入的数值(可以是字段名或具体数字)
- length:指定保留的小数位数。正数表示小数点后几位,负数表示小数点前几位
保留指定位数的小数(正数长度)
当 length 为正数时,ROUND 将对小数部分进行四舍五入。
例如:
SELECT ROUND(123.4567, 2); -- 结果:123.46SELECT ROUND(123.4567, 3); -- 结果:123.457
SELECT ROUND(price, 1) FROM products; -- 将价格保留一位小数
对整数部分进行四舍五入(负数长度)
当 length 为负数时,ROUND 会从个位向左进行四舍五入。
例如:
SELECT ROUND(123.456, -1); -- 结果:120.000SELECT ROUND(123.456, -2); -- 结果:100.000
SELECT ROUND(167.89, -1); -- 结果:170.00
这在按十位、百位汇总数据时非常有用。
注意事项与常见问题
- 不同数据库系统对 ROUND 的实现略有差异,但基本行为一致(如 MySQL、SQL Server、PostgreSQL、Oracle)
- ROUND 是“四舍五入”,不是“截断”或“向上取整”。如果需要其他方式,可使用 FLOOR、CEILING 或 TRUNCATE
- 如果原始值为 NULL,ROUND 返回 NULL
- 处理浮点数时注意精度问题,必要时可结合 CAST 或 CONVERT 使用
基本上就这些。掌握 ROUND 函数能让你在数据展示和统计时更加灵活准确。










