四舍五入到特定数字,例如:4,5,9,0 sql

四舍五入到特定数字,例如:4,5,9,0 sql,sql,rounding,Sql,Rounding,我有将从一种货币转换成几种其他货币的价格,但一旦转换,我想将它们四舍五入到一个特定的数字 关于我需要舍入的内容的示例如下: 任何低于10的数字都可以舍入到下一个数字。为此,我可以使用天花板功能。 10-14之间的任何值都需要四舍五入到14.00。ex:12.78至14.00 14.01和15之间需要四舍五入到15.00。ex:14.25至15.00 15.01和19之间需要四舍五入到19.00 ex:17.35到19.00 19.01和20之间需要四舍五入到20.00。ex:19.25至20.0

我有将从一种货币转换成几种其他货币的价格,但一旦转换,我想将它们四舍五入到一个特定的数字

关于我需要舍入的内容的示例如下:

任何低于10的数字都可以舍入到下一个数字。为此,我可以使用天花板功能。 10-14之间的任何值都需要四舍五入到14.00。ex:12.78至14.00 14.01和15之间需要四舍五入到15.00。ex:14.25至15.00 15.01和19之间需要四舍五入到19.00 ex:17.35到19.00 19.01和20之间需要四舍五入到20.00。ex:19.25至20.00

我知道这看起来有点奇怪,但这是我为我的项目提供的规范。我也理解将四舍五入到下一个5的倍数,但真正困扰我的是4和9的值

我需要使用什么公式来获得这些数字,或者更容易分解数字,获取小数点前的值,并根据我上面提到的标准进行案例分析


谢谢你的帮助

案例似乎最有意义,但您的“舍入”逻辑可能看起来有点奇怪:

CASE 
WHEN value < 10  THEN CEILING(value) 
WHEN value <= 14 THEN 14 
WHEN value <= 15  THEN 15 
WHEN value <= 19  THEN 19
WHEN value <= 20  THEN 20
END

案例似乎最有意义,但您的“舍入”逻辑可能看起来有点奇怪:

CASE 
WHEN value < 10  THEN CEILING(value) 
WHEN value <= 14 THEN 14 
WHEN value <= 15  THEN 15 
WHEN value <= 19  THEN 19
WHEN value <= 20  THEN 20
END

既然你有一些奇怪的要求(没有简单的公式来涵盖你所有的情况),那么我认为你最好使用这样的陈述。显然,根据您的要求调整精确的不等式:

SELECT CASE WHEN colVal < 10 THEN CEILING(colVal)
            WHEN colVal <= 14 THEN 14
            WHEN colVal <= 15 THEN 15
            WHEN colVal <= 19 THEN 19
            WHEN colVal <= 20 THEN 20
            ELSE someotherval
       END
选择colVal<10时的情况,然后选择天花板(colVal)

当colVal因为您有一些奇怪的要求(没有简单的公式来涵盖所有的情况),那么我认为您最好使用这样的语句。显然,根据您的要求调整精确的不等式:

SELECT CASE WHEN colVal < 10 THEN CEILING(colVal)
            WHEN colVal <= 14 THEN 14
            WHEN colVal <= 15 THEN 15
            WHEN colVal <= 19 THEN 19
            WHEN colVal <= 20 THEN 20
            ELSE someotherval
       END
选择colVal<10时的情况,然后选择天花板(colVal)

当colVal为20时,是最后一种情况,还是规则增加到99?您可以使用来识别在5的倍数的1以内的数字。然后你可以有2个案例-x mod 5 4.20不是最终案例,它上升到99。我需要能够涵盖任何可能的情况。20是最终的情况,还是规则增加到99?你可以用它来识别在5的倍数1以内的数字。然后你可以有2个案例-x mod 5 4.20不是最终案例,它上升到99。我需要能够涵盖任何可能的情况。谢谢你的快速回答。很好!谢谢你的快速回答。很好!