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

SQL实现整数向上取整至最近高位整十数的方法咨询

向上取整至最近高位整十数的SQL解决方法

嘿,我懂你的困扰——ROUND()函数确实解决不了这个问题,因为它是四舍五入逻辑,而你要的是无条件向上取整到下一个整十数。比如ROUND(63,-1)会返回60,这显然不是你想要的结果。

这里给你一个通用的解决方案,利用CEILING()函数(部分数据库也叫CEIL(),功能完全一致):

核心公式是:

CEILING(你的数值 / 10) * 10

实际例子演示:

  • 处理63:63 / 10 = 6.3,CEILING(6.3)返回7,7 * 10 = 70
  • 处理71:71 / 10 = 7.1,CEILING(7.1)返回8,8 * 10 = 80
  • 处理整十数80:80 /10 =8,CEILING(8)返回8,8*10=80(符合预期,不会多进一位)

不同数据库的小细节提醒:

有些数据库(比如SQL Server、老版本MySQL)会把整数之间的除法截断为整数,比如63/10会得到6而不是6.3,这时候需要把其中一个操作数转为小数,确保除法结果是浮点数:

-- SQL Server 兼容写法
SELECT CEILING(CAST(63 AS FLOAT)/10)*10 AS rounded_up;

-- MySQL 兼容新旧版本写法
SELECT CEILING(63 / 10.0)*10 AS rounded_up;

这样就能完美实现你要的“向上取整到最近高位整十数”的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:58:48