2017/12/07
ORACLEの数値関数のリファレンスです。
※当ページにおいて、検索結果イメージの半角スペースは【_】、NULLは【NULL】と表現しています。
sponsored link
ABS
文法
ABS(引数1[数値型])
戻り値
数値型
説明
引数1の絶対値を戻す
1 2 3 4 5 6 7 8 9 10 |
SELECT a ,ABS(a) func FROM test_table ; A FUNC ----- ----- 5 5 -5 5 0 0 |
CEIL
文法
CEIL(引数1[数値型])
戻り値
数値型
説明
引数1以上の最も小さい整数を戻す
1 2 3 4 5 6 7 8 9 10 11 |
SELECT a ,CEIL(a) func FROM test_table ; A FUNC ----- ----- 5 5 5.1 6 -5 -5 -5.1 -5 |
FLOOR
文法
FLOOR(引数1[数値型])
戻り値
数値型
説明
引数1以下の最も大きい整数を戻す
1 2 3 4 5 6 7 8 9 10 11 |
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)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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を戻す
1 2 3 4 5 6 7 8 9 10 |
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乗を戻す(累乗計算)
1 2 3 4 5 6 7 8 9 10 11 12 |
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は整数でないとエラーになる
1 2 3 4 5 |
SELECT POWER(-2,1.5) func FROM test_table ; ORA-01428: 引数'-2'が有効範囲外です |
備考2
引数1が0の場合、引数2は0以上でないとエラーになる
1 2 3 4 5 |
SELECT POWER(0,-1) func FROM test_table ; ORA-01426: 数値オーバーフローが発生しました |
ROUND
文法
ROUND(引数1[数値型],引数2[数値型])
※引数2を省略した場合は、0指定(整数に丸める)と同義
戻り値
数値型
説明
引数1を引数2で指定した桁で丸めた値を戻す(四捨五入)
0:整数に丸める
1:小数点以下1位に丸める
-1:整数10の位に丸める
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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 |
1 2 3 4 5 6 7 8 9 |
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を戻す
1 2 3 4 5 6 7 8 9 10 |
SELECT a ,SIGN(a) func FROM test_table ; A FUNC ----- ----- 5 1 -5 -1 0 0 |
SQRT
文法
SQRT(引数1[数値型])
戻り値
数値型
説明
引数1の平方根を戻す
1 2 3 4 5 6 7 8 9 10 |
SELECT a ,SQRT(a) func FROM test_table ; A FUNC ----- ----- 25 5 2 1.414 0 0 |
備考
引数1が負数の場合、エラーとなる
1 2 3 4 5 |
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 -) |
1 2 3 4 5 6 7 8 9 |
SELECT a ,TO_CHAR(a) func FROM test_table ; A FUNC ------- --------- 12003 _12003 -12003 -12003 |
1 2 3 4 5 6 7 8 9 |
SELECT a ,TO_CHAR(a,'000,000') func FROM test_table ; A FUNC ------- --------- 12003 _012,003 -12003 -012,003 |
1 2 3 4 5 6 7 8 9 |
SELECT a ,TO_CHAR(a,'FM000,000') func FROM test_table ; A FUNC ------- --------- 12003 012,003 -12003 -012,003 |
1 2 3 4 5 6 7 8 9 |
SELECT a ,TO_CHAR(a,'999,999') func FROM test_table ; A FUNC ------- --------- 12003 __12,003 -12003 _-12,003 |
1 2 3 4 5 6 7 8 9 |
SELECT a ,TO_CHAR(a,'FM999,999') func FROM test_table ; A FUNC ------- --------- 12003 12,003 -12003 -12,003 |
備考1
引数2でフォーマット指定した場合で、引数1の整数部があふれている場合、
正しく値を戻すことが出来ない
1 2 3 4 5 6 7 8 |
SELECT a ,TO_CHAR(a,'0,000') func FROM test_table ; A FUNC ------- --------- 12003 ###### |
備考2
引数2でフォーマット指定した場合で、引数1の小数部があふれている場合、
あふれた部分を四捨五入し戻す
1 2 3 4 5 6 7 8 |
SELECT a ,TO_CHAR(a,'00,000') func FROM test_table ; A FUNC --------- ----------- 12003.55 _12,004 |
1 2 3 4 5 6 7 8 |
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 -) |
1 2 3 4 5 6 7 8 9 10 11 12 |
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桁ごとのカンマは、フォーマット指定が必要
1 2 3 4 5 |
SELECT TO_NUMBER('123,456') func FROM test_table ; ORA-01722: 数値が無効です。 |
1 2 3 4 5 6 7 |
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の位以降を切捨てる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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 |
1 2 3 4 5 6 7 8 9 |
SELECT a ,TRUNC(a) func FROM test_table ; A FUNC ----- ----- 5.55 5 -5.55 -5 |