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

SQL中实现无条件向上取整:小数无论大小均进一位取整

如何在SQL中实现无条件向上取整

嘿,刚好能帮你搞定这个需求!你要的是无条件向上取整——不管小数部分是0.1还是0.9,都直接进一位到最近的整数,SQL里有专门的函数能实现这个功能,不同数据库方言的函数名略有差异,但核心逻辑一致:

  • MySQL/PostgreSQL/Oracle:可以用CEIL()或者CEILING()(两者功能完全等价)
  • SQL Server:使用CEILING()

针对你的查询语句,只需要把amount字段的计算逻辑用取整函数包裹起来就行。修改后的完整查询如下:

SELECT 
    MONTH_, 
    COST, 
    CEIL(DISC_COST / COST) AS 'amount', 
    DISC_COST, 
    PROFIT 
FROM arr 
WHERE MONTH_ LIKE 'JANU%';

对应你的示例数据验证效果:

  • 原数值2,414285714(即2.414...)会被取整为3
  • 原数值0,631578947(即0.631...)会被取整为1
  • 原本就是整数的1会保持不变,完全匹配你的需求!

如果你的数据库是SQL Server,只需要把CEIL替换成CEILING即可,效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:43:08