sql server中的舍入值

sql server中的舍入值,sql,sql-server,tsql,decimal,rounding,Sql,Sql Server,Tsql,Decimal,Rounding,我希望对如下值进行四舍五入 10.5 -> 11.00 28.35 -> 28.50 17.85 -> 18.00 条件是如果值

我希望对如下值进行四舍五入

10.5  -> 11.00
28.35 -> 28.50
17.85 -> 18.00
条件是如果值<50,则四舍五入到。否则将四舍五入到1

如何在SQL中应用。

尝试以下逻辑:

SELECT
    value AS old_value,
    CASE WHEN value < 50
         THEN CEILING(value*2) / 2
         ELSE CEILING(value) END AS new_value
FROM yourTable;
选择
值作为旧值,
值<50时的情况
然后上限(值*2)/2
ELSE天花板(值)以新值结束
从你的桌子上;
在审阅了您的评论之后,我实际上支持此查询中的逻辑。以下是我在测试时生成的结果:


请注意,
10.5
映射到自身,而不是映射到
11.0
。原因是您已将
0.5
级别定义为四舍五入的权宜之计。其他数字应该四舍五入到最接近的
0.5,
并停在那里是没有意义的,但是
10.5
应该继续到
11.0

我已经尝试了它给出ex2.25>3结果的逻辑,它应该给出2.50谢谢。+1,很好的解决方案。但是为什么您需要
案例
呢?始终应为
上限(值*2)/2
。例如,For 50.3将返回错误value@uzi阅读以下问题:
条件是,如果值<50,则四舍五入到.50,否则将四舍五入到1。
。。。大于50的数字占上限。对不起,我的错。我错过了那部分