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

記事内に商品プロモーションを含む場合があります。
2017.11.26 7 views

エクセルで作られた処理を移植しようとしたら、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