(5)函数查询
1、函数
- Oracle中的函数是用来处理和修饰数据的一个方法
- 只是在临时表中处理数据,不会改变原有的值
- dual:虚表,用来显示数据的临时表
2、分类
- 单行函数:是对一行记录进行操作,返回一个结果
- 多行函数:是对多行记录进行操作,返回一个结果
- 总结:不管单行函数还是多行函数最终结果就是一个
3、单行函数
- 数值函数 用来处理数值的
- 字符函数 用来处理字符的
- 日期函数 用来处理日期的
- 转换函数 数据类型相互转换
- 通用函数
3.1数值函数
- round(小数):四舍五入
- round(小数, 精确的位数):精确到小数点第几位,并且四舍五入
- round(小数, 0):舍弃小数位置,并且会四舍五入
- round(小数, 负数):小数点前一位,四舍五入,不进位取0填补
- trunc():截取函数,舍弃小数点不四舍五入
- trunc(m, n):n:保留小数点后几位
- mod(值1, 值2):取余数
- abs(值):绝对值
- ceil():向上取整
- floor():向下取整
- sqrt():开方
案例:
--函数:用来处理和修饰书的一个方法
--round(小数):四舍五入
select round(3.6)
from dual; --dual:虚表
--round(小数,精确的位数):精确到小数点第几位,并且四舍五入
select round(5.66666666,1)
from dual;
--round(小数,0):舍弃小数位置,四舍五入
select round(5.465456,0) from dual;
--round(小数,负数):小数点前两位,四舍五入,不进位取0填朴
select round(526.66666666,-2) from dual;
select round(-979.1212,-2) from dual;
--案例:查询员工部门10 或 20 的员工的年工资(精确到百位)
select round((sal+nvl(comm,0))*12,-2) 年薪 from emp
where deptno in (10,20);
--trunc(m,n) n:保留小数点后几位
--截取函数,舍弃小数,不四舍五入
select trunc(4.73531,2) from dual;--4.73
select trunc(473.73534,-2) from dual;--400
--mod(值1,值2):取余数
select mod(10,3) from dual;
--abs(值1):绝对值
select abs(-10) from dual;
--ceil():向上取整
select ceil(2.3) from dual;
select ceil(-2.3) from dual;
--floor():向下取整
select floor(3.8) from dual;
select floor(-3.1) from dual;
--sqrt():开方 取()里数的根号
select sqrt(25) from dual;
3.2字符函数
- upper():小写转大写
- lower():大写转小写
- initcap():首字母大写,其他字母变为小写
3.3截取函数:
- substr(字符, m):从第m个位置截取到最后
- substr(字符, m, n):从第m个位置开始,截取n个字符
- substr(字符, -m, n):-m:倒数第几位,n:截取几位(向后截取)
- length():字符串长度
3.4拼接函数:
- concat(字符1, 字符