SQLで小数点以下を切り上げるにはCEILING関数
SQLで小数点以下を切り上げたい場合は「CEILING関数」を使います。
ここでは、CEILING関数の使い方について解説します。
CEILING関数の使い方
CEILING関数は次のように記述して使います。
SELECT CEILING(値);
CEILINGの後ろのカッコに、切り捨げを行いたい値を記述しましょう。
では実際にSQLを操作して確認してみます。
次のテーブルを用意しました。
mysql> SELECT * FROM sample_table; +------+--------+---------+ | id | name | data | +------+--------+---------+ | 1 | Sasaki | 123.567 | | 2 | Itou | 231.445 | | 3 | Yusa | 156.729 | | 4 | Koga | 98.39 | | 5 | Minami | 226.19 | +------+--------+---------+ 5 rows in set (0.00 sec)
上記テーブルの dataカラム の値を切り上げて結果を取得してみましょう。
次のように記述できます。
SELECT CEILING(data) FROM sample_table;
本来、値を記述するカッコの中に dataカラム名 を記述しましょう。
これで、すべてのデータの dataカラム の値を切り上げできます。
上記SQL文を実行すると、次のように結果取得できるはずです。
mysql> SELECT CEILING(data) FROM sample_table; +---------------+ | CEILING(data) | +---------------+ | 124 | | 232 | | 157 | | 99 | | 227 | +---------------+ 5 rows in set (0.00 sec)
すべてのデータの dataカラム の値が切り上げられていますね。
このように、SQLで値を切り上げたい場合にはCEILING関数が使えます。
OracleとPosrgreSQLの場合はCEIL関数
MySQLで値を切り上げる場合は、CEILING関数を使うことを紹介しました。
しかし、OracleまたはPosrgreSQLで値の切り上げを行う場合は、「CEIL関数」を使いましょう。
使い方は、CEILING関数と同様に次の通りです。
SELECT CEIL(値);
関数名だけ異なるので、しっかり覚えておきましょう!
なお、MySQLでもCEIL関数は使えます。
mysql> SELECT CEIL(data) FROM sample_table; +------------+ | CEIL(data) | +------------+ | 124 | | 232 | | 157 | | 99 | | 227 | +------------+ 5 rows in set (0.00 sec)
このように、取得結果はCEILING関数と同じになります。
切り上げる桁数を指定する方法
切り上げる桁数を指定した場合はどのようにすれば良いですか?
桁数を変えるには少し工夫が必要です。やり方を解説するので参考にしてください!
ここまで、SQLで値を切り上げる具体的な方法を紹介しました。
値を切り上げるときに「小数第一位、第二位で切り上げたい」という場合もありますよね。
しかし、CEILING関数は通常、「引数以上のもっとも小さな整数値を返す」ため、切り上げる桁の指定ができません。
そのため、切り上げる桁を調整するには少し工夫が必要です。
結論としては、切り上げたい小数桁を整数にし、切り上げ後に戻すのが簡単でしょう。
例えば、小数第一位で切り上げを行いたい場合は次のように記述します。
SELECT CEILING(123.45 * 10) / 10;
上記のSQLを実行すると、次の結果が取得でき、期待した動作になっているのがわかります。
mysql> SELECT CEILING(123.45 * 10) / 10; +---------------------------+ | CEILING(123.45 * 10) / 10 | +---------------------------+ | 123.5000 | +---------------------------+ 1 row in set (0.00 sec)
サンプルデータでも確認してみます。
mysql> SELECT CEILING(data * 10) / 10 FROM sample_table; +-------------------------+ | CEILING(data * 10) / 10 | +-------------------------+ | 123.6 | | 231.5 | | 156.8 | | 98.4 | | 226.2 | +-------------------------+ 5 rows in set (0.00 sec)
ちゃんと小数第一位で切り上げが行われていますよね。
小数第二位で切り上げたい場合は100で、小数第三位で切り上げたい場合は1000でSQL文を実行すればOKです。
このように、専用の関数は用意されていませんが、工夫次第で桁数を指定して切り上げることもできます。
切り上げ以外によく使う関数【切り捨て/四捨五入】
SQLで値を操作する際には、切り上げ以外にも「切り捨て」や「四捨五入」もあります。
切り捨てをする場合は TRUNC関数やFLOOR関数、四捨五入をする場合は ROUND関数 をそれぞれ使いましょう!
それぞれのやり方は、次の記事で詳しく解説しているのでよければ参考にしてくださいね!
【関連記事】
▶︎SQLのTRUNC関数で数値や日付、時間を切り捨てる方法を教えます!
▶︎【1分でわかる】SQLで四捨五入するにはROUND関数を使う!
SQLで数値を切り上げる方法まとめ
SQLで値を切り上げる方法について紹介しました。
数値の切り上げには CEILING関数 または CEIL関数 を使います。
切り上げたい数値をCEILING関数内に記述するだけなので、とても簡単に使えるはずです。
ただし、切り上げたい桁数を指定する際は、少し工夫が必要です。
ぜひこの記事を参考に、CEILING関数の使い方をマスターしてください!
切り上げる桁数を指定する場合は、10倍、100倍にした状態で切り上げ、同じ倍数で割って結果を取得しましょう!