SQL按重要性向下舍入(相当于excel的floor函数)

时间:2017-02-15 23:22:13

标签: sql-server excel tsql ssms

我需要SQL中的东西模仿excel的FLOOR()函数。 SQL的FLOOR()函数只接受一个参数并向下舍入到最接近的整数。但我需要能够选择重要性,例如excel的FLOOR()函数。

示例:在excel FLOOR(6.03,.125) = 6.00FLOOR(6.63,.125) = 6.625中 但到目前为止,在SQL中我尝试过ROUND(6.63,.125)= 7.00ROUND(6.63,.125,1) = 6.00

有谁知道如何实现我的目标?

1 个答案:

答案 0 :(得分:2)

Declare @V float = 6.3
Declare @F float = 0.125

Select Floor(@V)+floor((@V-Floor(@V))/@F)*@F

返回

6.25
  

编辑 - 如果需要UDF

CREATE Function [dbo].[udf-Stat-Round-To](@Value float,@Round float)
Returns Float
As
Begin

Return case when @Round=0 then NULL else Floor(@Value)+Floor((@Value-Floor(@Value))/@Round)*@Round end

End
-- Syntax Select [dbo].[udf-Stat-Round-To](10.13,.125) -- 10.125