ORACLEの数値関数のリファレンスです。
※当ページにおいて、検索結果イメージの半角スペースは【_】、NULLは【NULL】と表現しています。
ABS
文法
ABS(引数1[数値型])
戻り値
数値型
説明
引数1の絶対値を戻す
SELECT a
,ABS(a) func
FROM test_table
;
A FUNC
----- -----
5 5
-5 5
0 0
CEIL
文法
CEIL(引数1[数値型])
戻り値
数値型
説明
引数1以上の最も小さい整数を戻す
SELECT a
,CEIL(a) func
FROM test_table
;
A FUNC
----- -----
5 5
5.1 6
-5 -5
-5.1 -5
FLOOR
文法
FLOOR(引数1[数値型])
戻り値
数値型
説明
引数1以下の最も大きい整数を戻す
SELECT a
,FLOOR(a) func
FROM test_table
;
A FUNC
----- -----
5 5
5.1 5
-5 -5
-5.1 -6
MOD
文法
MOD(引数1[数値型],引数2[数値型])
戻り値
数値型
説明
引数1を引数2で除算した余りを戻す
※引数1 - 引数2 × TRUNC(引数1 ÷ 引数2)
SELECT a
,b
,MOD(a,b) func
FROM test_table
;
A B FUNC
----- ----- -----
6 3 0
7 3 1
-7 3 -1
7 -3 1
-7 -3 -1
備考
引数2が0の場合(0割)、引数1を戻す
SELECT a
,b
,MOD(a,b) func
FROM test_table
;
A B FUNC
----- ----- -----
6 0 6
-6 0 -6
POWER
文法
POWER(引数1[数値型],引数2[数値型])
戻り値
数値型
説明
引数1の引数2乗を戻す(累乗計算)
SELECT a
,b
,POWER(a,b) func
FROM test_table
;
A B FUNC
----- ----- -----
2 3 8
-2 3 -8
2 0 1
2 -1 0.5
備考1
引数1が負数の場合、引数2は整数でないとエラーになる
SELECT POWER(-2,1.5) func FROM test_table ; ORA-01428: 引数'-2'が有効範囲外です
備考2
引数1が0の場合、引数2は0以上でないとエラーになる
SELECT POWER(0,-1) func FROM test_table ; ORA-01426: 数値オーバーフローが発生しました
ROUND
文法
ROUND(引数1[数値型],引数2[数値型])
※引数2を省略した場合は、0指定(整数に丸める)と同義
戻り値
数値型
説明
引数1を引数2で指定した桁で丸めた値を戻す(四捨五入)
0:整数に丸める
1:小数点以下1位に丸める
-1:整数10の位に丸める
SELECT a
,b
,ROUND(a,b) func
FROM test_table
;
A B FUNC
----- ----- -----
5.55 0 6
5.55 1 5.6
5.55 -1 10
-5.55 0 -6
-5.55 1 -5.6
-5.55 -1 -10
SELECT a
,ROUND(a) func
FROM test_table
;
A FUNC
----- -----
5.55 6
-5.55 -6
SIGN
文法
SIGN(引数1[数値型])
戻り値
数値型
説明
引数1が正数の場合、1を戻す
引数1が負数の場合、-1を戻す
引数1が0の場合、0を戻す
SELECT a
,SIGN(a) func
FROM test_table
;
A FUNC
----- -----
5 1
-5 -1
0 0
SQRT
文法
SQRT(引数1[数値型])
戻り値
数値型
説明
引数1の平方根を戻す
SELECT a
,SQRT(a) func
FROM test_table
;
A FUNC
----- -----
25 5
2 1.414
0 0
備考
引数1が負数の場合、エラーとなる
SELECT SQRT(-1) func FROM test_table ; ORA-01428: 引数'-1'が有効範囲外です
TO_CHAR
文法
TO_CHAR(引数1[数値型],引数2[文字型(数値書式フォーマット)])
※引数2を省略可能
戻り値
文字型
説明
引数1を引数2で指定したフォーマットで文字型に変換し戻す
※引数2を省略した場合は、40バイトまでは引数1の値をそのまま変換する
引数2の日時書式フォーマット(代表的なものを掲載)
| 書式モデル | 説明 |
| FM | 前後の空白を除外、9指定されている小数部の後ろ0を除外 |
| ,(カンマ) | 指定した位置に区切りを表すカンマ(複数指定可) |
| .(ドット) | 指定した位置に小数点を表すドット(1か所のみ指定可) |
| 0 | 指定桁が0の場合、0 |
| 9 | 指定桁が0の場合、半角スペース |
| S | 符号(+ or -) |
SELECT a
,TO_CHAR(a) func
FROM test_table
;
A FUNC
------- ---------
12003 _12003
-12003 -12003
SELECT a
,TO_CHAR(a,'000,000') func
FROM test_table
;
A FUNC
------- ---------
12003 _012,003
-12003 -012,003
SELECT a
,TO_CHAR(a,'FM000,000') func
FROM test_table
;
A FUNC
------- ---------
12003 012,003
-12003 -012,003
SELECT a
,TO_CHAR(a,'999,999') func
FROM test_table
;
A FUNC
------- ---------
12003 __12,003
-12003 _-12,003
SELECT a
,TO_CHAR(a,'FM999,999') func
FROM test_table
;
A FUNC
------- ---------
12003 12,003
-12003 -12,003
備考1
引数2でフォーマット指定した場合で、引数1の整数部があふれている場合、
正しく値を戻すことが出来ない
SELECT a
,TO_CHAR(a,'0,000') func
FROM test_table
;
A FUNC
------- ---------
12003 ######
備考2
引数2でフォーマット指定した場合で、引数1の小数部があふれている場合、
あふれた部分を四捨五入し戻す
SELECT a
,TO_CHAR(a,'00,000') func
FROM test_table
;
A FUNC
--------- -----------
12003.55 _12,004
SELECT a
,TO_CHAR(a,'00,000.0') func
FROM test_table
;
A FUNC
--------- -----------
12003.55 _12,003.6
TO_NUMBER
文法
TO_NUMBER(引数1[文字型],引数2[文字型(数値書式フォーマット)])
※引数2を省略可能
戻り値
数値型
説明
引数1を数値型に変換し戻す
引数1のフォーマット型を引数2に指定する
引数2を省略した場合、前後のスペース、小数点、符号は問題なく変換可能
引数2の日時書式フォーマット(代表的なものを掲載)
| 書式モデル | 説明 |
| FM | 前後の空白を除外、9指定されている小数部の後ろ0を除外 |
| ,(カンマ) | 指定した位置に区切りを表すカンマ(複数指定可) |
| .(ドット) | 指定した位置に小数点を表すドット(1か所のみ指定可) |
| 0 | 指定桁が0の場合、0 |
| 9 | 指定桁が0の場合、半角スペース |
| S | 符号(+ or -) |
SELECT a
,TO_NUMBER(a) func
FROM test_table
;
A FUNC
-------- ---------
12003 12003
-12003 -12003
12003.4 12003.4
12003_ 12003
_12003 12003
備考1
3桁ごとのカンマは、フォーマット指定が必要
SELECT TO_NUMBER('123,456') func
FROM test_table
;
ORA-01722: 数値が無効です。
SELECT TO_NUMBER('123,456','999,999') func
FROM test_table
;
FUNC
---------
123456
TRUNC
文法
TRUNC(引数1[数値型],引数2[数値型])
※引数2を省略した場合は、0指定(整数に丸める)と同義
戻り値
数値型
説明
引数1を引数2で指定した桁で切捨てた値を戻す
0:小数部を切捨てる
1:小数点以下第2位以降を切捨てる
-1:整数1の位以降を切捨てる
SELECT a
,b
,TRUNC(a,b) func
FROM test_table
;
A B FUNC
----- ----- -----
5.55 0 5
5.55 1 5.5
5.55 -1 0
-5.55 0 -5
-5.55 1 -5.5
-5.55 -1 0
SELECT a
,TRUNC(a) func
FROM test_table
;
A FUNC
----- -----
5.55 5
-5.55 -5