Oracle SQL 関数 : CEIL : 指定数値の最小整数値
numberRet := CEIL( numberSrc ); CEIL関数は数値データ numberSrc 以上の最も小さい整数を返します。 numberSrc が小数点以下の値があれば、numberSrc に最も近い整数を返し、 numberSrc が小数点以下の値が無ければ、numberSrc そのものを返します。
以下に「小数点以下を含んだ正の値」「小数点以下を含んだ負の値」「小数点以下のない値」「数値を表す文字列」の例を示します。
SQL> SELECT
2 CEIL( 12356.15) AS "正の値"
3 ,CEIL(-12356.15) AS "負の値"
4 ,CEIL( 12356 ) AS "小数点以下無し"
5 ,CEIL('12356.15') AS "数値を表す文字列"
6 FROM DUAL;
正の値 負の値 小数点以下無し 数値を表す文字列
---------- ---------- -------------- ----------------
12357 -12356 12356 12357
上の例で指定された値が 正 の場合は直感的に分かりやすいのですが、
負 の場合は少し戸惑います。(私の場合ですが)
上記の「-12356.15」についてですが、数直線上で考えて「-12356.15」より、
もっと「0」に近くなる方向で考えれば CEIL 関数の結果が「-12356」になることが理解できます。
CEIL 関数は取り得る値が、数値に変換できるデータのため、以下の様な場合にはエラーが返されます。
SQL> SELECT
2 CEIL('abc') AS "数値ではない文字列"
3 FROM DUAL;
CEIL('abc') AS "数値ではない文字列"
*
行2でエラーが発生しました。:
ORA-01722: 数値が無効です。