データベース - SQL 関数 - 切り捨て・切り上げ TRUNC・CEIL・FLOOR

クラウディア 
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 |
+-------------+-------------+-------------+-------------+