SQL数值函数
/*abs(n)
返回参数n所指定数值的绝对值(如果参数值为NULL,则返回结果为NULL,下同)。*/
--SELECT ABS(-3.14) FROM DUAL; --3.14
/*round(n[, m])
返回对参数n进行四舍五入处理后的结果。参数n可以是任意数字、m则必须为整数。如果省略参数m,则四舍五入到整数位;如m为正数,则将n四舍五入到小数点后的第m位;如m为负数,则将n四舍五入到小数点左侧的第m位。*/
--SELECT ROUND(3.1415) FROM DUAL; --3
--SELECT ROUND(3.1415,2) FROM DUAL;--3.14
--SELECT ROUND(314.167,2) FROM DUAL;--314.17
--SELECT ROUND(314.159,-2) FROM DUAL; --300
--SELECT ROUND(314.64,-1) FROM DUAL; --310
--SELECT ROUND(644.64,-3) FROM DUAL; --1000
/*trunc(n[, m])
返回对参数n进行截断处理后的结果。参数n可以是任意数字、m则必须为整数。如果省略参数m,则将数字n的小数部分截掉;如m为正数,则将n截断到小数点后的第m位;如m为负数,则将n截断到小数点左侧的第m位。*/
--SELECT TRUNC(3.1415926,3) FROM DUAL; --3.141
--SELECT TRUNC(3.1415926) FROM DUAL; --3
--SELECT TRUNC(125.14,-1) FROM DUAL; --120
--SELECT TRUNC(125.14,-2) FROM DUAL; --100
/*ceil(n)
向上取整,返回不小于n的最小整数。*/
--SELECT CEIL(3.14) FROM DUAL; --4
--SELECT CEIL(103.14) FROM DUAL; --104
/*floor(n)
向下取整,返回不大于n的最大整数。*/
--SELECT FLOOR(3.14) FROM DUAL; --3
--SELECT FLOOR(103.14) FROM DUAL; --103
/*sign(n)
判断数字值的正负。如果参数n的值小于0则返回-1;如果n大于0则返回1;如果n等于0则返回结果为0。*/
--SELECT SIGN(2) FROM DUAL; --1
--SELECT SIGN(-2) FROM DUAL; -- -1
--SELECT SIGN(0) FROM DUAL; --0
/*power(m, n)
返回参数m的n次幂。参数m和n可以是任意数字,但如果m值为0,则n必须为正数(否则会出现数字溢出错误)。*/
--SELECT POWER(2,5) FROM DUAL; --32
--SELECT POWER(2,-2) FROM DUAL; --0.25
--SELECT POWER(0,2) FROM DUAL; --0
/*
sqrt(n)
返回参数n的平方根。n必须为大于等于0的数字。*/
--SELECT SQRT(16) FROM DUAL; --4
/*mod(m, n)
取模运算,返回参数m除以n所得的余数。参数m和n可以是任意数字,返回结果的数据符号(正/负)与被除数m保持一致,如果n的值等于0,则直接返回m的值。*/
--SELECT MOD(10,3) FROM DUAL; --1
--SELECT MOD(-10,4) FROM DUAL; -- -2
/*exp(n)
幂运算,返回自然对数的底数e的n次幂(e=2.71828...)。*/
--SELECT EXP(2) FROM DUAL; --7.38905609893065
/*log(m, n)
对数运算,返回以m为底的n的对数。参数m可以是除0和1以外的任意正数,参数n可以是任意正数。*/
--SELECT LOG(2,8) FROM DUAL; --3
/*ln(n)
自然对数运算,返回参数n的自然对数(以e为底n的对数),参数n可以是任意正数。就是指log以e为底的对数,b=ln(a)表示e的b次方等于a。 LN(9)=2.19722457733622
e=2.71828……*/
--SELECT LN(9) FROM DUAL;
--SELECT POWER(2.71828,2.19722457733622) FROM DUAL; --8.99998669828808