累乗、べき乗を求める、対数を求める、二乗根、平方根を求める
POWER ( number1 , number2 )
LOG ( number1 , number2 )
SQRT ( number1 )
return [ BINARY_DOUBLE | BINARY_FLOAT | NUMBER ]
- POWER : 数値式 number1 の 「number2」 乗を戻す。
- LOG : 数値式 number1 を底とした number2 の対数を戻す。
- SQRT : 数値式 number1 の平方根を戻す。
POWER 関数の内容
数値式 number1 を底とした 「number2」 指数の数値を戻す。
他の高級言語では number1 ^ number2 と表現される。
戻り値のデータ型は number1、number2 の優先順位の高いデータ型となる。
PL/SQL における累乗計算の豆知識
PL/SQL では累乗が演算子 (**) としてサポートされている。 例 num := a ** b;
注意
Oracle の NUMBER 型では虚数を範ちゅうとしていないデータ型であるため number1 がマイナスの場合に number2 に小数を含むとエラー(※)となる。
(※) マニュアルには書かれていないので断定できないが BINARY_DOUBLE および BINARY_FLOAT 型において虚数解となる場合には 非数値をあらわす 'Nan' を戻す。
LOG 関数の内容
数値式 number1 を底とした number2 の対数を戻す。
ネイピア数 を底にした 対数は 自然対数(Natural Logarithm) と呼ばれ。底を 10 にしたものは 常用対数 と呼ばれる。
前述の POWER 関数で対数の式を表現すると
x = LOG ( m , n ) ⇔ n = POWER ( m , x )
SQRT(SQuare RooT) 関数の内容
数値式 number1 の平方根(二乗根、自乗根)を戻す。POWER( number1 , 0.5) と同等。
POWER 同様、虚数解になる場合、 NUMBER 型ならエラー、浮動小数点型では Nan を戻す。(こちらはマニュアルにも明記されている)
POWER 使用例
SQL> select num1, num2, POWER(num1, num2) from power_sample;
NUM1 NUM2 POWER(NUM1,NUM2)
---------- ---------- ----------------
2 0 1
2 1 2
2 2 4
-2 -2 .25
-2 -3 -.125
1 .5 1
虚数となる式 (-1)^(0.5) = - i (=虚数 i )
SQL> select POWER(-1, 0.5) from dual;
select POWER(-1, 0.5) from dual
*
行1でエラーが発生しました。:
ORA-01428: 引数'-1'が有効範囲外です
SQL> select POWER(-1d, 0.5) from dual;
POWER(-1D,0.5)
--------------
Nan
SQRT 使用例
SQL> select num, SQRT(num) from sqrt_sample;
NUM SQRT(NUM)
---------- ----------
1 1
2 1.41421356
3 1.73205081
4 2
5 2.23606798
SQL 関数 - POWER,SQRT,SQRT 関連