Skill Note

平凡なエンジニアがメモ代わりにプログラミング, インフラ, ネットワークを書き綴るブログ

[Oracle]端数処理、丸めの方法

      2020/01/09

ORACLEで数値の端数処理、数値丸めをする

数値を四捨五入する場合は、ROUND関数
数値を切り捨てる場合は、TRUNC関数
各関数の第2引数の値で、小数部、または、整数部を丸めることができる。

引数の最小値を返すCEIL関数、最大の整数を返すFLOOR関数でも求めることができる。
数値が正数の場合は、CEIL関数、負数の場合は、FLOOR関数を用いる。

四捨五入 ROUND関数

SELECT ROUND(0.4) FROM DUAL       -- 0
SELECT ROUND(0.5) FROM DUAL       -- 1
SELECT ROUND(0.44, 1) FROM DUAL  -- 0.4
SELECT ROUND(0.45, 1) FROM DUAL  -- 0.5
SELECT ROUND(4.0, -1) FROM DUAL  -- 0
SELECT ROUND(5.0, -1) FROM DUAL  -- 10

切り捨て TRUNC関数

SELECT TRUNC(0.1) FROM DUAL         -- 0
SELECT TRUNC(0.12, 1) FROM DUAL    -- 0.1
SELECT TRUNC(1.0, -1) FROM DUAL     -- 0
SELECT TRUNC(12.0, -1) FROM DUAL   -- 10

切り上げ

数値を切り上げる場合は、標準関数が存在しないので、
切り上げる桁数に「+9」をして切り捨て、または、切り上げる桁数に「+4」をして四捨五入をする。

SELECT TRUNC(0.12 + 0.09, 1) FROM DUAL -- 0.2
SELECT TRUNC(12.0 + 9, -1) FROM DUAL   -- 20
SELECT ROUND(0.12 + 0.04, 1) FROM DUAL -- 0.2
SELECT ROUND(12.0 + 4, -1) FROM DUAL   -- 20
SELECT CEIL(0.1) FROM DUAL             -- 1
SELECT CEIL(-0.1) FROM DUAL            -- 0
SELECT FLOOR(0.1) FROM DUAL            -- 0
SELECT FLOOR(-0.1) FROM DUAL           -- -1

Google AdSense PC

Google AdSense PC

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

oracle
[Oracle]インストールに失敗する原因と対処方法

Oracleインストールエラー時の確認事項 OracleのデータベースやクライアントをWindowsへインストール中に インストーラが途中で落ちたり、エラーが発 …

sqlserer
[SQLServer]日付文字列 + 時刻文字列をDATETIME型に変換する方法

SQLServerで日付文字列 + 時刻文字列をDATETIME型に変換する方法 日付と時刻を別のカラムに格納している場合に日時データとして扱いたい場合は CO …

oracle
ODP.NETをNuGetからインストールする

ODP.NETのインストール手順 Oracle 12cから公式のODP.NETがNuGetに追加されました。 この記事ではODP.NETをNuGetからインスト …

oracle
[Oracle]Oracle Clientのアンインストール方法

Oracle Clientをレジストリを含め完全に削除することがありましたので、この記事では削除手順を記載します。 削除手順ではレジストリを変更しますので十分注 …

sqlserer
[SQL Server]IDENTITYの値を初期化する

ID値の初期化(リセット)方法 IDENTITYプロパティを設定した列のID値を初期化(リセット)する方法を記載します。 現在のID値を確認する ID値を確認す …

sqlserer
[SQL Server]除算時の注意点

SQLServerで除算結果が小数になる場合 たとえば、1100グラムをキロに換算する場合は「1100 / 1000」で計算すれば「1.1kg」と求められるが …

oracle
[Oracle]Data Pumpを使用したデータベースのバックアップ

Data Pump機能のexpdp/impdpコマンドを使用するとデータベース全体、スキーマ単位、表単位など対象範囲を指定したバックアップやリストアを行うことが …

oracle
[Oracle]OracleからWebサービスを利用する方法

SOAPリクエストを送信してレスポンスを表示する 前回はOracleからWebサイトにアクセスする方法を記載しましたが、今回はOracleからSOAP形式のWe …

oracle
[Oracle]データベーストリガーの作成方法

DMLトリガーを作成する データベーストリガーの中でももっとも一般的なDMLトリガーの作成方法と簡単な使用方法を記載していきます。 トリガーとは? トリガーとは …

db
[Database]データベースのバージョン/エディションを確認する方法

OracleとSQLServerのバージョン/エディションを確認 Oracle  SELECT * FROM V$VERSION SQLServer SELEC …