【问题标题】:how do I round in sql when I want to round to a specific lot size reading from a table当我想四舍五入到从表中读取的特定手数时,如何在 sql 中四舍五入
【发布时间】:2015-10-15 16:05:40
【问题描述】:

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

【问题讨论】:

    标签: mysql rounding-error ondemand


    【解决方案1】:

    您是否尝试过使用 case 语句? Select CASE WHEN Lot < 50 THEN Lot ELSE 100 END FROM YourTable

    这只有在你有几个不同的选择来舍入时才有效,放置太多的 case 语句会花费很多时间

    【讨论】:

      【解决方案2】:

      我假设“手数”是列字段名称?如果是这样,IF 语句可能就是您想要的。下面是一个简单的例子

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

      【讨论】:

        【解决方案3】:
        SELECT 50*CEIL(qty / 50) AS RoundedQty FROM table_name
        

        或者如果你有lot_size 列:

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

        【讨论】:

          【解决方案4】:

          如果你想四舍五入到最接近的 50,那么 1 -> 50、48 -> 50、51 -> 100、87 -> 100 等等,那么

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

          用你想四舍五入的值代替@number。

          【讨论】:

            猜你喜欢
            • 2023-01-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-11-21
            • 2019-07-02
            • 1970-01-01
            • 2012-08-04
            • 2023-03-26
            相关资源
            最近更新 更多