SQLServer EXCELのFLOORやCEILINGみたいに基準値を使って処理する方法

2017.11.26
Index

エクセルで作られた処理を移植しようとしたら、ceiling、floorに基準値の指定ができなくて困ったので、こんな風に対応してみました。

コード

declare
@値 float
,@基準値 float

set @値 = 13.1
set @基準値 = 0.5

--ceiling(x,y)
select case when @値 - floor(@値) <= @基準値 and @値 - floor(@値) > 0 then floor(@値) + @基準値 else ceiling(@値) end

--floor(x,y)
select case when @値 - floor(@値) < @基準値 then floor(@値) else floor(@値) + @基準値 end