1.字符函数:
upper('字符串'|列名称)将输入的字符串转换成大写
lower('字符串'|列名称)将输入的字符串转换成小写
initcap('字符串'|列名称),首字母大写
length('字符串'|列名称);字符串长度
replace('字符串'|列名称);进行替换
substr(字符串 | 列,开始点 [,截取个数]):字符串截取;第一个数是开始的位置,第二个数字是从截取位置开始截取的个数
2.数字函数:
四舍五入
select round(3.1415926,3) from dual; //3.142
select round(2554,-2) from dual; //2600
舍弃小数位
select trunc(3.1415926,3) from dual; //3.141
select trunc(2554, -2) from dual; //2500
3.日期函数
1).获取当前日期:sysdate;3天后的日期
select ename, sysdate+3 from emp;
2).||:管道符,拼接字符串
select ename||3 from emp;
3).last_day:获取当月最后一天
select last_day(sysdate) from dual;
select last_day(hiredate) from emp;
select * from emp where last_day(hiredate)='31-12月-80';
4).next_day:下一次出现星期X的日期
select next_day(sysdate,'星期日') from dual;
5).add_months:几个月之后的日期(加减月份)
select add_months(sysdate, 4) from dual;
6).month_between:获取两个日期之间的月份
select trunc(months_between('1-2月-2017',sysdate)) from dual;
4.转换函数
1).to_char:把日期(任意类型)转换成字符串
select sysdate||'' from dual
select to_char(sysdate,'yyyy-mm-dd') from dual;
//每隔3位加一个逗号
select to_char(123456789,'999,999,999,999') from dual;
2).to_date:把任意类型转成时间日期
select to_char(to_date('1999-1-1 20:20:20','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual;
3).to_number:把任意类型转成数字
select to_number('123')+123 from dual;
//在数据库中"+"号只有一个意义,就是相加,没有拼接的意义
select '123'+'123' from dual;
5.通用函数
查询雇员每月工资总和,基本工资+奖金
1).nvl
select ename ,sal+comm total from emp;
//nvl处理null,nvl(列名称|具体的值,默认值)
select ename, sal+nvl(comm, 0) total from emp;
2).decode
查询所有的员工信息,显示员工的中文职位 CLERK=办事人员,SALESMAN=销售人员,PRESIDENT=董事长,MANAGER=部门经理,ANALYST=分析人员
select job from emp group by job ;
//方法一:
select ename,
case
when job='CLERK'
then '办事人员'
when job='SALESMAN'
then '销售人员'
when job='PRESIDENT'
then '董事长'
when job='MANAGER'
then '部门经理'
else '分析人员'
end
from emp;
//方法二:
select ename,decode(job,'CLERK','办事人员','SALESMAN','销售人员','PRESIDENT','董事长','MANAGER','部门经理','ANALYST','分析师') from emp;