Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

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です。

このように、専用の関数は用意されていませんが、工夫次第で桁数を指定して切り上げることもできます。

ポテパンダの一言メモ

切り上げる桁数を指定する場合は、10倍、100倍にした状態で切り上げ、同じ倍数で割って結果を取得しましょう!

切り上げ以外によく使う関数【切り捨て/四捨五入】

SQLで値を操作する際には、切り上げ以外にも「切り捨て」や「四捨五入」もあります。

切り捨てをする場合は TRUNC関数やFLOOR関数、四捨五入をする場合は ROUND関数 をそれぞれ使いましょう!

それぞれのやり方は、次の記事で詳しく解説しているのでよければ参考にしてくださいね!

【関連記事】

▶︎SQLのTRUNC関数で数値や日付、時間を切り捨てる方法を教えます!

▶︎【1分でわかる】SQLで四捨五入するにはROUND関数を使う!

SQLで数値を切り上げる方法まとめ

SQLで値を切り上げる方法について紹介しました。

数値の切り上げには CEILING関数 または CEIL関数 を使います。

切り上げたい数値をCEILING関数内に記述するだけなので、とても簡単に使えるはずです。

ただし、切り上げたい桁数を指定する際は、少し工夫が必要です

ぜひこの記事を参考に、CEILING関数の使い方をマスターしてください!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。