目录
在Oracle数据库中,数值函数是用于处理数值类型的数据的函数。数值函数可以对数值进行四舍五入round、向上取整ceil、向下取整floor、取绝对值abs、取余mod、数据截断trunc、判断正负sign、次方和开方power等操作,用于对数值进行运算和处理。
下面解释下常见的数值函数:
1、abs(数) 取绝对值
select abs(1),abs(-1),abs(0)
from dual;
2、mod(数1,数2) 取余
数1除以数2的余数,结果的正负与数1一致,与数2无关,数2可以为0 ,但结果为数1。
select mod(10,3),mod(-10,-3),mod(10,-3),mod(-10,3),mod(10,0)
from dual;
比如:
假设员工编号是奇数的为男生偶数的为女生,则请查询出所有的男员工信息。
select *
from emp
where mod(empno,2)=1;
3、ceil(数) 向上取整
对数值进行向上取整操作。例如,CEIL(3.14159)的结果为4。
select ceil(-1.1),ceil(-1.9),ceil(3.14159)
from dual;
4、floor(数)向下取整
对数值进行向下取整操作,整数取整时是本身。例如,FLOOR(3.14159)的结果为3。
select floor(-1.1),floor(-1.9),floor(3.14159),floor(5),floor(-3)
from dual;
5、round(数1[,数2]) 四舍五入
数2是保留的小数位数,不写默认保留到整数;数2是负数,就表示保留到小数点前几位。对数值进行四舍五入操作,可以指定精度。
select round(123.456,2),round(123.456),round(195.456,-2)
from dual;
比如:
查询员工姓名,工资,部门编号,工资是部门编号的多少倍(四舍五入保留2位小数)。
select ename,sal,deptno,round(sal/deptno,2) 多少倍
from emp;
6、trunc(数1[,数2])
截断 --不进位,数2是保留的小数位数,不写默认保留到整数。
select trunc(123.456,2),trunc(123.456),trunc(123.456,-2)
from dual;
7、sign(数)
判断正负零,正数返回1,负数返回-1,0返回0。
select sign(-12.2),sign(-13),sign(0),sign(3.8),sign(8)
from dual;
8、power(数1,数2)
次方和开方,数1的数2次方。
select power(2,3),power(2,1/2),power(7,0),power(8,-3),power(16,-1/2)
from dual;
比如:
查询工资的部门编号次方。
select power(sal,deptno)
from emp;