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
相关产品推荐
相关产品推荐

