当我想要从表中舍入到特定的批量大小时,如何在sql中舍入

时间:2015-10-15 16:05:40

标签: mysql rounding-error ondemand

当我想要从表中舍入到特定的批量大小时,如何在sql中舍入。因此,如果需要的是51但是我的手数是50,我希望它以100回来。

4 个答案:

答案 0 :(得分:0)

您是否尝试过使用案例陈述? Select CASE WHEN Lot < 50 THEN Lot ELSE 100 END FROM YourTable

这只有在你有几个不同的四舍五入选择时才会起作用,过多的案例陈述需要花费很多时间

答案 1 :(得分:0)

我假设“批量大小”是列字段名称?如果是这样,IF语句可能就是你想要的。一个简单的例子如下

 SELECT IF (lot_size > 49, 100, lot_size) AS lot_size FROM table_name

答案 2 :(得分:0)

SELECT 50*CEIL(qty / 50) AS RoundedQty FROM table_name

或如果您有lot_size列:

SELECT lot_size*CEIL(qty / lot_size) AS RoundedQty FROM table_name

答案 3 :(得分:0)

如果你想要四舍五入到最接近的50,那么1 - &gt; 50,48 - &gt; 50,51 - &gt; 100,87 - &gt; 100,等等,然后

select ((@number div 50) + 1) * 50

用替换你想要的值代替@number。