【发布时间】:2015-10-15 16:05:40
【问题描述】:
当我想四舍五入到从表中读取的特定手数时,如何在 sql 中四舍五入。因此,如果需要 51,但我的手数是 50,我希望它以 100 回来。
【问题讨论】:
标签: mysql rounding-error ondemand
当我想四舍五入到从表中读取的特定手数时,如何在 sql 中四舍五入。因此,如果需要 51,但我的手数是 50,我希望它以 100 回来。
【问题讨论】:
标签: mysql rounding-error ondemand
您是否尝试过使用 case 语句? Select CASE WHEN Lot < 50 THEN Lot ELSE 100 END FROM YourTable
这只有在你有几个不同的选择来舍入时才有效,放置太多的 case 语句会花费很多时间
【讨论】:
我假设“手数”是列字段名称?如果是这样,IF 语句可能就是您想要的。下面是一个简单的例子
SELECT IF (lot_size > 49, 100, lot_size) AS lot_size FROM table_name
【讨论】:
SELECT 50*CEIL(qty / 50) AS RoundedQty FROM table_name
或者如果你有lot_size 列:
SELECT lot_size*CEIL(qty / lot_size) AS RoundedQty FROM table_name
【讨论】:
如果你想四舍五入到最接近的 50,那么 1 -> 50、48 -> 50、51 -> 100、87 -> 100 等等,那么
select ((@number div 50) + 1) * 50
用你想四舍五入的值代替@number。
【讨论】: