#POW POWER

pow
POW ( expr , exp )
power
POWER ( expr , exp )

POW/POWER函数计算expr参数值的exp次幂,其返回类型为:

  • 当expr的值为TINYINT、SMALLINT、INT、BIGINT、NUMBER、CHAR、VARCHAR、NCHAR、NVARCHAR类型时,返回NUMBER。
  • 当expr的值为FLOAT或DOUBLE类型时,返回DOUBLE。
  • 当exp的值为FLOAT或DOUBLE类型时,返回DOUBLE。
  • 当expr或exp的值为NULL时,函数返回NULL。
  • 对于不能转换为NUMBER类型的expr或exp报错。

exp

指数。

exp为与expr相同的通用表达式,当exp的值为NULL时,函数返回NULL。

下表列示了不同情况下本函数的计算规则:(字符型将被隐式转换为NUMBER类型参与下表规则)

expr底数数据类型 expr底数值 exp指数数据类型 exp指数值 函数计算结果
整数/浮点数/NUMBER 正数/负数/0 整数/浮点数/NUMBER 0 1
整数/浮点数/NUMBER 正数 整数/浮点数/NUMBER 正数/负数 expr的exp次幂
整数/浮点数/NUMBER 0 整数/浮点数/NUMBER 正数 0
整数/浮点数/NUMBER 0 浮点数 负数 Inf
整数/浮点数/NUMBER 0 整数/NUMBER 负数 YAS-00012错误
整数 负数 整数/NUMBER(小数点后无值) 正数/负数 expr的exp次幂
整数 负数 浮点数 正数/负数 Nan
整数 负数 NUMBER(小数点后有值) 正数/负数 YAS-04426错误
浮点数 负数 整数 正数/负数 expr的exp次幂
浮点数 负数 浮点数 正数/负数 Nan
浮点数 负数 NUMBER 正数/负数 Nan
NUMBER 负数 整数/NUMBER(小数点后无值) 正数/负数 expr的exp次幂
NUMBER 负数 浮点数 正数/负数 Nan
NUMBER 负数 NUMBER(小数点后有值) 正数/负数 YAS-04426错误

示例

SET NUMWIDTH 20;

SELECT POW(2,2) res FROM DUAL;
                  RES 
--------------------- 
                    4

SELECT POW(2,-2) res FROM DUAL;
                  RES 
--------------------- 
                  .25

SELECT POW(2,2.1) res FROM DUAL;
                  RES
---------------------
 4.287093850145172657

SELECT POWER(2.2,-12.1) res FROM DUAL;
                  RES
---------------------
 .0000718928270982645
           
SELECT POW(-1,1.1) res FROM DUAL;
[1:13]YAS-04426 the argument value is out of range

SELECT POW(0, -1) res FROM DUAL;
[1:12]YAS-00012 numeric overflow
pdf-btn 下载文档
copy-btn 复制链接