SQL中ROUND函数如何四舍五入_ROUND函数四舍五入的用法详解

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.46
SELECT ROUND(123.4567, 3); -- 结果:123.457
SELECT ROUND(price, 1) FROM products; -- 将价格保留一位小数

对整数部分进行四舍五入(负数长度)

length 为负数时,ROUND 会从个位向左进行四舍五入。

例如:

SELECT ROUND(123.456, -1); -- 结果:120.000
SELECT 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 函数能让你在数据展示和统计时更加灵活准确。