将值四舍五入到最接近的 50

kr*_*ris 2 sql-server rounding

我试图将值四舍五入到最接近的 50。1-50 它应该四舍五入到 00 以下,当它的 51-rest 然后它应该四舍五入到 50

前任:

  • 245(直到 1-49)它应该四舍五入到 200
  • 258(从 50-99)那么它应该四舍五入到 250

我试过这个,它很好,但我需要除了案例陈述之外的东西

@ResultAmount = ROUND(@ResultAmount, -2, 1) + 
    CASE    WHEN RIGHT(CONVERT(INT, FLOOR(@ResultAmount)), 2) IN (00, 50)
            THEN RIGHT(CONVERT(INT, FLOOR(@ResultAmount)), 2)
            WHEN RIGHT(CONVERT(INT, FLOOR(@ResultAmount)), 2) BETWEEN 1 AND 49
            THEN 00
            WHEN RIGHT(CONVERT(INT, FLOOR(@ResultAmount)), 2) BETWEEN 51 AND 99
            THEN 50
            END
Run Code Online (Sandbox Code Playgroud)

提前致谢!!!

小智 5

这就是你所需要的

SELECT FLOOR(@ResultAmount / 50) * 50;
Run Code Online (Sandbox Code Playgroud)

例如下面

declare @ResultAmount decimal(10,2) = 249;

SELECT FLOOR(@ResultAmount / 50) * 50;

SET @ResultAmount = 250;

SELECT FLOOR(@ResultAmount / 50) * 50;

SET @ResultAmount = 200;

SELECT FLOOR(@ResultAmount / 50) * 50;

SET @ResultAmount = 199;

SELECT FLOOR(@ResultAmount / 50) * 50;
Run Code Online (Sandbox Code Playgroud)