Oracle SQL 小数点以下がある値だけを抽出するMOD関数

Oracle SQLで小数点以下がある値だけを抽出する方法です。

Oracle SQL 小数点以下がある値だけを抽出する方法

実務では、小数点以下の計算ってよくありますね。その中で「小数点以下が発生している値」だけを知りたい場面があったので抽出方法を紹介します。

抽出方法には MOD関数 を利用します。

MOD関数について詳しく知りたい方は「ORACLE SQL 割り算をした値の余りを求めるMOD関数」を参考にどうぞ。

利用テーブルとデータ

今回サンプルとして利用するテーブルとデータです。

CREATE TABLE NUMTABLE (
  EXNUM NUMBER(12,7)
);
INSERT INTO EXNUMTBL VALUES(100);
INSERT INTO EXNUMTBL VALUES(200);
INSERT INTO EXNUMTBL VALUES(300);
INSERT INTO EXNUMTBL VALUES(123.456);
INSERT INTO EXNUMTBL VALUES(987.654);
INSERT INTO EXNUMTBL VALUES(654.321);
INSERT INTO EXNUMTBL VALUES(118.75);

使用例

使用例です。

SELECT 実数
FROM テーブル
WHERE MOD(実数,1) > 0

MOD(実数,1) にて、実数を 1 で割った剰余を求めます。その際、小数が許されますので、条件に [ > 0 ] とすることで抽出が可能になります。

サンプル

今回のサンプルソースで実行するSQLはこうなります。

SELECT EXNUM
FROM EXNUMTBL
WHERE MOD(EXNUM,1) > 0

実行すると・・・、

Oracle SQLで小数点以下がある値だけを抽出した結果

おおおー、小数点以下がある値だけ抽出できたー^^

まとめ

Oracle SQLで小数点以下がある値だけを抽出する方法を紹介しました。

理解してしまえば簡単ですが、なかなか思いつかないですよね。ここでしっかりと覚えてしまいましょう。

そして忘れたらまたこのサイトを訪ねてくださいね^^

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。