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 結果
これを実行します。
![](https://stellacreate.com/wp-content/uploads/2023/12/9b3e3f00d2e7599db912e11bf3161008.png)
実行結果
引数がプラスの値の場合、そのまま切り捨てられています。一般的な感覚の切り捨てですね。
引数がマイナスの場合、マイナス方向に向かって切り捨てられるため、「-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 結果
実行結果はこちら。
![](https://stellacreate.com/wp-content/uploads/2023/12/43d5fe3120a20d3a0fcb6f522c26ad0a.png)
実行結果
また、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 結果
これを実行すると…
![](https://stellacreate.com/wp-content/uploads/2023/12/85ea1a482f4e372f329c54e7875324c2.png)
実行結果
という結果になります。
参考リンク
![](https://stellacreate.com/wp-content/uploads/cocoon-resources/blog-card-cache/62becbf9e66edbd7a674a2191e28faef.png)
FLOOR (Transact-SQL) - SQL Server
FLOOR (Transact-SQL)
![](https://stellacreate.com/wp-content/uploads/cocoon-resources/blog-card-cache/62becbf9e66edbd7a674a2191e28faef.png)
ROUND (Transact-SQL) - SQL Server
ROUND (Transact-SQL)
関連記事
![](https://stellacreate.com/wp-content/uploads/2021/11/20200615213413-160x90.jpg)
【SQL Server】四捨五入を行う(ROUND関数)
SQL Server における、四捨五入を行う方法です。ROUND関数を使います。
![](https://stellacreate.com/wp-content/uploads/2021/11/20200615213413-160x90.jpg)
【SQL Server】切り上げを行う(CEILING関数)
Oracle における切り上げの方法です。「CEILING関数」を使用します。