- 1. 概要
- 2. TRUNC
- 3. CEIL
- 4. FLOOR
1. 概要
「TRUNC」「CEIL」「FLOOR」は、数値の切り捨てや切り上げを行います。
本ページは、下記のサイトを参考にさせていただきました。
「【Oracle】SQL関数(数値の端数処理)」
でまぁ、使用例を書こうと思いましたら、「CEIL」と「FLOOR」は、「IBM DB2」でも「PostgreSQL」でもこの関数が有効でないのだ。
「MySQL」では、使えるようです。
ややこしくなるのが、マイナス値が、算数の得意な人でないとなかなか理解しにくいのだ。
2. TRUNC
「TRUNC」で、切り捨てができます。
これは、マイナスであろうがどうであろうが、切り捨てる桁数以下のものがなくなるという理解でいいかな・・・。
TRUNC(数値や変数, 小数点以下桁数)
「IBM DB2」でやってみました。
SELECT
TRUNC(-1.5, 0)
,TRUNC(-1.4, 0)
,TRUNC( 1.4, 0)
,TRUNC( 1.5, 0)
FROM
DUAL;
この「SQL」の結果は、下記になります。
-1
-1
1
1
3. CEIL
「CEIL」は、基本、切り上げかな。
ここから、サンプルは「MySQL」での実行になります。
SELECT
CEIL(-1.5)
,CEIL(-1.4)
,CEIL( 1.4)
,CEIL( 1.5)
FROM
DUAL;
この「SQL」の結果は、下記になります。
+------------+------------+------------+------------+
| CEIL(-1.5) | CEIL(-1.4) | CEIL( 1.4) | CEIL( 1.5) |
+------------+------------+------------+------------+
| -1 | -1 | 2 | 2 |
+------------+------------+------------+------------+
4. FLOOR
「FLOOR」は、基本、切り捨てかな。
SELECT
FLOOR(-1.5)
,FLOOR(-1.4)
,FLOOR( 1.4)
,FLOOR( 1.5)
FROM
DUAL;
この「SQL」の結果は、下記になります。
+-------------+-------------+-------------+-------------+
| FLOOR(-1.5) | FLOOR(-1.4) | FLOOR( 1.4) | FLOOR( 1.5) |
+-------------+-------------+-------------+-------------+
| -2 | -2 | 1 | 1 |
+-------------+-------------+-------------+-------------+
|