You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中是否有将数值四舍五入至最近整数的函数?

解决SQL四舍五入到最近整数的问题

当然有合适的函数啦!你提到的CEILING()和FLOOR()分别是向上取整和向下取整,它们只会单向调整数值,没法根据小数部分判断是否进位,所以不符合你的需求。而几乎所有主流SQL数据库都提供了专门的四舍五入函数:

核心解决方案:ROUND()函数

这是最常用的四舍五入函数,语法为ROUND(目标数值, 保留的小数位数)。当你把小数位数设为0时,就会自动将数值四舍五入到最近的整数:

-- 示例:四舍五入到整数
SELECT ROUND(12.56, 0); -- 输出结果:13
SELECT ROUND(12.34, 0); -- 输出结果:12

注意:特殊情况的处理

有些数据库(比如SQL Server、PostgreSQL)里的ROUND()默认采用银行家舍入法(四舍六入五成双),也就是当小数部分恰好是0.5时,会取最近的偶数。例如:

SELECT ROUND(12.5, 0); -- 输出12(因为12是偶数)
SELECT ROUND(13.5, 0); -- 输出14(因为14是偶数)

如果需要严格的“0.5进1”规则,可以用小技巧调整,比如给数值加一个极小的偏移量再取整:

SELECT ROUND(12.5 + 0.000001, 0); -- 输出13

其他数据库的替代方案

如果你的数据库不支持ROUND()(这种情况很少见),也可以用自定义逻辑实现:

-- 通用四舍五入逻辑:通过判断小数部分是否≥0.5来决定加1还是直接取整
SELECT 
  CASE 
    WHEN 数值 - FLOOR(数值) >= 0.5 THEN CEILING(数值)
    ELSE FLOOR(数值)
  END AS 四舍五入结果
FROM 你的表;

内容的提问来源于stack exchange,提问作者unicorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:34:48