記事内に広告が含まれています。

【SQL Server】切り捨てを行う(FLOOR関数)

Oracle における切り捨ての方法です。「FLOOR関数」を使用します。

【スポンサーリンク】

FLOOR関数で切り捨てを行う

FLOOR関数で切り捨てを行う場合の構文です。

FLOOR(数値)

これだけです。

ただし、FLOOR関数の場合、引数に小数点を含めた値を渡すと、強制的に整数のみが返って来ます。

また、引数に渡した値がマイナスの場合、マイナス方向に向かって切り捨てられます(実行例でお見せします)。

【スポンサーリンク】

サンプル(実行例)

FLOOR関数の実行サンプルです。

--引数がプラス
SELECT ' 7.89' AS 対象, FLOOR(7.89)  AS 結果
UNION ALL
--引数がマイナス
SELECT '-1.23' AS 対象, FLOOR(-1.23) AS 結果

これを実行します。

実行結果

引数がプラスの値の場合、そのまま切り捨てられています。一般的な感覚の切り捨てですね。

引数がマイナスの場合、マイナス方向に向かって切り捨てられるため、「-1.23」は「-2」という結果になります(「-1」と勘違いしやすいので注意)。

【スポンサーリンク】

ROUND関数でも切り捨ては可能

ちなみに、ROUND関数でも切り捨ては可能です。FLOOR関数は全て整数で結果を戻しますが、ROUND関数は桁数を指定出来るので、小数点以下を指定して切り捨てることが可能です。

実行サンプルはこちら。第3引数に「1」を渡すことで切り上げされた結果が返って来ます。

--引数がプラス
SELECT ' 7.89' AS 対象, ROUND(7.89, 1,1)  AS 結果
UNION ALL
--引数がマイナス
SELECT '-1.23' AS 対象, ROUND(-1.23, 1,1) AS 結果

実行結果はこちら。

実行結果

また、FLOOR関数が切り捨てた結果はマイナス方向に向かいますが、ROUND関数が切り捨てた場合はゼロ方向に向かいます。

実際に比較してみます。切り捨て対象の値をマイナスにした方が分かりやすいと思うので、マイナスの値を切り捨てます。

--FLOOR関数
SELECT '-1.23' AS 対象, FLOOR(-1.23) AS 結果
UNION ALL
--ROUND関数(第2引数を0にすれば整数のみになるが今回は小数第1位までとする)
SELECT '-1.23' AS 対象, ROUND(-1.23, 1,1) AS 結果

これを実行すると…

実行結果

という結果になります。

【スポンサーリンク】

参考リンク

FLOOR (Transact-SQL) - SQL Server
FLOOR (Transact-SQL)
ROUND (Transact-SQL) - SQL Server
ROUND (Transact-SQL)
【スポンサーリンク】

関連記事

【SQL Server】四捨五入を行う(ROUND関数)
SQL Server における、四捨五入を行う方法です。ROUND関数を使います。
【SQL Server】切り上げを行う(CEILING関数)
Oracle における切り上げの方法です。「CEILING関数」を使用します。