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

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

  関連記事

sqlserer
[SQL Server]再帰SQLで集計する

WITH(共通テーブル式)を使って集計する WITH句とは 共通テーブル式 (CTE) は、単一の SELECT、INSERT、UPDATE、DELETE、CR …

oracle
Oracle12cのPDBを自動起動にする方法

Oracle12cのプラガブル・データベース(PDB)は初期設定のままでは、毎回、手動で起動させる必要があります。 この記事ではOS起動時やOracle再起動時 …

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

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

oracle
Oracleで文字列を全角大文字に変換する(ひらがな・カタカナの小文字(捨て仮名)対応)

Oracleの文字列検索で全角半角、大文字小文字、ひらがなカタカナを区別しないであいまい検索する場合は比較対象の文字列形式を統一する必要があります。 文字列形式 …

oracle
[Oracle]CSALTERを使用してOracle Expressのキャラクタセットを変更する

Oracle Expressでは標準のキャラクタセットとしてAL32UTF8が設定されます。 キャラクタセットを意識しないでデータベースの移行やデータベース間の …

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

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

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

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

sqlserer
[SQL Server]データを期間別に集計する

SQL Serverで集計表を出力 日付をDATETIME型で管理している場合、CONVERT関数、DATEPART関数を使って、日、週、月、年別の集計結果を出 …

sqlserer
[SQLServer]形式指定で日付を取得する方法

SQLServerで形式を指定して日付を取得する 日付形式を指定するために、CONVERT関数、または、FORMAT関数を使用します。 CONVERT関数とFO …

oracle
Oracle 11g XEへのデータ移行方法を検討してみる

Oracleのデータ移行時は移行元と移行先の文字コードに注意する必要があります。 Windows環境のOracleでは「JA16SJIS」や「JA16SJIST …