数值计算函数
ABS
语法:
ABS(exp)
功能:返回exp的值。
入参exp可以是数值类型或任何可以隐式转换为数值类型的非数值类型。
函数返回值类型与参数exp数据类型相同。
说明:exp必须是可转为数值类型的表达式,返回exp的值(包括:INT、BIGINT、REAL、NUMBER、DECIMAL类型)。
示例:
返回-100的值。
SELECT ABS(-100) AS "Absolute" from DUAL;
Absolute
----------------------------------------
100
1 rows fetched.
ACOS
语法:
ACOS(n)
功能:返回表达式n的反余弦值。
入参n是可转成数值型的表达式,取值范围为[-1,1]。返回值是NUMBER。
示例:
返回-1的反余弦值。
SELECT ACOS(-1) AS "ACOS" from DUAL;
ACOS
----------------------------------------
3.1415926535897932384626433832795028842
1 rows fetched.
ASIN
语法:
ASIN(n)
功能:返回表达式n的反正弦值。
入参n是可转成数值型的表达式,取值范围为[-1,1]。返回值是NUMBER。
示例:
返回0.5的反正弦值。
SELECT ASIN(0.5) AS "ASIN" from DUAL;
ASIN
----------------------------------------
.523598775598298873077107230546583814033
1 rows fetched.
BITAND
语法:
BITAND(exp1,exp2)
功能:按位与运算。
入参是可转成数值型表达式。数值取值范围[-9223372036854775808, 9223372036854775807]
示例:
对数字7(二进制111)和1(二进制001)执行AND运算:
SELECT BITAND(7,1) AS "BITAND" FROM DUAL;
BITAND
--------------------
1
1 rows fetched.
BITOR
语法:
BITOR(exp1,exp2)
功能:按位或运算。
入参是可转成数值型表达式。数值取值范围[-9223372036854775808, 9223372036854775807]
示例:
返回29和15的按位或的值。
SELECT BITOR(29,15) AS "BITOR" from DUAL;
BITOR
--------------------
31
1 rows fetched.
BITXOR
语法:
BITXOR(exp1,exp2)
功能:按位异或运算。
入参是可转成数值型表达式。数值取值范围[-9223372036854775808, 9223372036854775807]
示例:
返回以下各值之间的按位异或的值。
示例1:
SELECT BITXOR (1,1) AS "BITXOR" from DUAL;
BITXOR
--------------------
1 rows fetched.示例2:
SELECT BITXOR (1,)AS "BITXOR" from DUAL;
BITXOR
--------------------
1
1 rows fetched.示例3:
SELECT BITXOR (11,3) AS "BITXOR" from DUAL;
BITXOR
--------------------
8
1 rows fetched.
CEIL
语法:
CEIL(n)
功能:返回大于或者等于指定表达式n的小整数。
入参n是可转成数值型表达式。返回值是整数。
示例:
返回大于或者等于15.3的小整数。
SELECT CEIL(15.3) AS "CEIL" from DUAL;
CEIL
----------------------------------------
16
1 rows fetched.
COS
语法:
COS(n)
功能:返回表达式的余弦值。
入参是可转成数值型的表达式。返回值是NUMBER。
示例:
返回120度得余弦值。
SELECT COS(120 * 3.14159265359/180) AS "COS" from DUAL;
COS
----------------------------------------
-.50000000000011937382925089877706420632
1 rows fetched.
EXP
语法:
EXP(n)
功能:返回e(自然对数的底)的n次幂的值。
返回类型为NUMBER。
入参n是numeric数据类型或任何可以隐式转换为numeric数据类型的非数字数据类型。
示例:
返回e的3次幂的值。
SELECT EXP(3);
EXP(3)
----------------------------------------
20.085536923187667740928529654581717897
FLOOR
语法:
FLOOR(exp)
功能:求小于或等于表达式值的近的整数。
入参是可转成数值型表达式。返回值是NUMBER。
示例:
返回等于或小于12.8的大整数。
SELECT FLOOR(12.8) AS "FLOOR" from DUAL;
FLOOR
----------------------------------------
12
1 rows fetched.
INET_NTOA
语法:
INET_NTOA(exp)
功能:将给定的数字地址转换为网络地址。
入参是数值型表达式。
示例:
将4294967295转化为网络地址。
SELECT INET_NTOA(4294967295) FROM DUAL;
INET_NTOA(4294967295)
---------------------
255.255.255.255
1 rows fetched.
LN
语法:
LN(exp)
功能:自然对数(以e为底)。
入参是可转成number类型的表达式。返回值是NUMBER类型。
说明:exp当前只支持大于0的NUMBER类型。
示例:
返回70的自然对数。
SELECT LN(70) AS "LN" from DUAL;
LN
----------------------------------------
4.24849524204935898912334419812754393724
1 rows fetched.
LOG
语法:
log(exp1[,exp2])
功能:对数运算(以exp1为底)。
入参是可转成number类型的表达式。返回值是NUMBER类型。
说明:
exp1和exp2当前只支持number。
若不传exp2,则默认以e为底,即log(exp1)=ln(exp1)。
示例:
返回以3为底,81的对数。
SELECT LOG(3,81) AS "LOG" from DUAL;
LOG
----------------------------------------
4
1 rows fetched.
MOD
语法:
MOD(exp1,exp2)
功能:求模运算。
入参是可转成NUMBER类型的表达式。返回值是NUMBER。
示例:
返回29除以3的余数。
SELECT MOD(29,3) AS "MOD" from DUAL;
MOD
----------------------------------------
2
1 rows fetched.
POWER
语法:
POWER(base,expn)
功能:返回数字乘幂的计算结果。
入参base表示底数,expn表示指数。返回值:NUMBER。
说明:
当参数expn的值为小数时,表示计算的是开方;当参数base取值小于0且参数expn为小数时,POWER函数将返回超过支持范围的报错。
示例:
返回5的3次幂的值。
SELECT POWER(5,3) AS "POWER" from DUAL;
POWER
----------------------------------------
125
1 rows fetched.
RAWTOHEX
语法:
RAWTOHEX(exp)
功能:将RAW类数值exp转换为一个相应的十六进制表示的字符串。
入参是RAW类数值。返回值是字符串。
示例:
SELECT RAWTOHEX ('0123456789abcdef') FROM DUAL;
RAWTOHEX('0123456789ABCDEF')
-----------------------------------
30313233343536373839616263646566
1 rows fetched.
ROUND
语法:
ROUND(number[,decimals])
功能:将number类数值按照decimals指定的向小数点前后截断,返回截断后的值。
入参number是数值。
decimals指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分,并四舍五入。取值范围[-2147483648,2147483647]。
如果为负数则表示从小数点开始左边的位数,相应整数数字用0填充,并四舍五入,小数部分被去掉。
示例:
将1234.5678向后截断1位输出。
SELECT ROUND(1234.5678, 1) FROM DUAL;
ROUND(1234.5678, 1)
----------------------------------------
1234.6
1 rows fetched.将1234.5678所有小数部分截断。
SELECT ROUND(1234.5678) FROM DUAL;
ROUND(1234.5678)
----------------------------------------
1235
1 rows fetched.将1234.5678向前截断1位输出。
SELECT ROUND(1234.5678, -1) FROM DUAL;
ROUND(1234.5678, -1)
----------------------------------------
1230
1 rows fetched.
SIGN
语法:
SIGN(exp)
功能:取exp结果的符号,大于0返回1,小于0返回-1,等于0返回0。
入参exp是数值类型。
示例:
SELECT SIGN(5-6) FROM DUAL;
SIGN(5-6)
----------------------------------------
-1
1 rows fetched.
SIN
语法:
SIN(n)
功能:返回表达式的正弦值。
入参是可转成数值型的表达式。返回值是NUMBER。
示例:
返回45度的正弦值。
SELECT SIN(45 * 3.14159265359/180) AS "SIN" from DUAL;
SIN
----------------------------------------
.707106781186584075022132715997995378626
1 rows fetched.
SQRT
语法:
SQRT(n)
功能:返回非负实数的平方根。
入参是可转成非负数值型表达式。返回值是decimal。
示例:
返回49的平方根。
SELECT SQRT(49) AS "SQRT" from DUAL;
SQRT
----------------------------------------
7
1 rows fetched.
TRUNC
语法:
TRUNC(number,scale)
功能:按指定的格式截取输入的数值数据。
number是待截取的数据,scale截取精度。返回值:NUMBER。
示例:
以下示例截断数字。
SELECT TRUNC(15.79,1) AS "TRUNC" from DUAL;
TRUNC
----------------------------------------
15.7
1 rows fetched.
SELECT TRUNC(15.79,-1)AS "TRUNC" from DUAL;
TRUNC
----------------------------------------
10
1 rows fetched.