- カテゴリ:
数値関数 (四捨五入と切り捨て)
CEIL¶
input_expr
の値を最も近い整数以上に切り上げした値、または小数点以下の指定した桁数で最も近い等しい値以上に切り上げした値を返します。
- こちらもご参照ください。
構文¶
CEIL( <input_expr> [, <scale_expr> ] )
引数¶
input_expr
操作する値または式です。データ型は、 FLOAT や NUMBERなどの数値データ型のいずれかでなければなりません。
scale_expr
出力の小数点の後に含める桁数です。式は-38~+38の整数に評価される必要があります。
デフォルトでは、
scale_expr
はゼロになっています。これは、関数が小数点以下のすべての数字を削除することを意味します。負のスケールについては、以下の使用上の注意をご参照ください。
戻り値¶
戻り値の型は入力型に基づいています。
入力式が FLOAT の場合、返される型は FLOAT です。
入力式が NUMBER の場合、返される型は NUMBER です。
入力スケールが一定の場合:
入力スケールが正の場合、返される型は入力スケールと等しいスケールを持ち、あらゆる可能性のある結果を包含するのに十分な大きさの精度があります。
入力スケールが負の場合、返される型のスケールは0です。
入力スケールが一定でない場合、返される型のスケールは入力式のスケールと同じになります。
スケールがゼロの場合、値は事実上 INTEGER になります。
例:
CEIL(3.14::FLOAT, 1)によって返されるデータ型は FLOAT です。
CEIL(3.14, 1)によって返される NUMBER はスケール1で、精度は少なくとも3です。
CEIL(-9.99, 0)によって返される NUMBER はスケール0で、精度は少なくとも2です。
CEIL(33.33, -1)によって返される NUMBER はスケール0で、精度は少なくとも3です。
使用上の注意¶
scale_expr
が負の場合、数値を調整する小数点の 前 の場所の数を指定します。例えば、スケールが-2の場合、結果は100の倍数になります。scale_expr
が入力式のスケールよりも大きい場合、関数は効果がありません。input_expr
またはscale_expr
のいずれかが NULL の場合、結果は NULL です。負の数を切り上げると、値は0に近くなります。たとえば、 CEIL(-1.9) は-1であり、-2ではありません。
数値を切り上げるとデータ型の値の範囲外になる場合は、エラーが返されます。
例¶
この例は、 scale_expr
パラメーターなしの関数を示しています。
SELECT CEIL(135.135), CEIL(-975.975); +---------------+----------------+ | CEIL(135.135) | CEIL(-975.975) | |---------------+----------------| | 136 | -975 | +---------------+----------------+
この例は、負の数値に設定されたスケールを含む、 scale_expr
パラメーターを使用した関数を示しています。
テーブルを作成して入力します。
CREATE TRANSIENT TABLE test_ceiling (n FLOAT, scale INTEGER); INSERT INTO test_ceiling (n, scale) VALUES (-975.975, -1), (-975.975, 0), (-975.975, 2), ( 135.135, -2), ( 135.135, 0), ( 135.135, 1), ( 135.135, 3), ( 135.135, 50), ( 135.135, NULL) ;出力:
SELECT n, scale, ceil(n, scale) FROM test_ceiling ORDER BY n, scale; +----------+-------+----------------+ | N | SCALE | CEIL(N, SCALE) | |----------+-------+----------------| | -975.975 | -1 | -970 | | -975.975 | 0 | -975 | | -975.975 | 2 | -975.97 | | 135.135 | -2 | 200 | | 135.135 | 0 | 136 | | 135.135 | 1 | 135.2 | | 135.135 | 3 | 135.135 | | 135.135 | 50 | 135.135 | | 135.135 | NULL | NULL | +----------+-------+----------------+