单行函数:
函数类别:
单行:返回单个结果:substr,length
多行:返回多个结果,any,all
单行的分类:
字符类,日期类,数字类,转换类,通用类
1.字符类
转换大小写:
lower:转换为小写
Select ENAME,LOWER(ENAME) from EMP
upper:转换为大写
Select upper('abcd') from DUAL
initcap :首字母大写
Select INITCAP(ENAME) from EMP
2.字符处理类
concat:连接两个不同的列,CONCAt只能接受两个参数
Select CONCAT(EMPNO,ENAME) from EMP
Select CONCAT('A','B') from dual
substr:截取子串
下标从1开始
Select SUBSTR(ENAME,2) from EMP--从第2个位置截到末尾
Select SUBSTR(ENAME,2,3) from EMP--从第2个位置截取3个
length:提取长度
Select ENAME,length(ename) from emp
INSTR:相当于String类中的indexOf,求索引
Select ENAME,instr(ename,'A') from emp
LPAD和RPAD的用法
表示补充的含义
Select LPAD(SAL,10,'*') from EMP
Select RPAD(SAL,10,'*') from EMP
将sal显示为10位,不足的位置补上字符*
trim两边滤空
Select Trim(' A B C ') from DUal
使用LTrime和RTrim过滤一边的空格
Select LTrim(' A B C ') from DUAL
REPLACE:替换
Select ename ,Replace(ename,'A','B') from EMP
3.数字转换类:
ROUND:四舍五入
TRUNC:截取
MOD:取余
Select ROUND(16.336666663,3) from DUAL
Select TRUNC(16.33666666,3) from DUAL
Select Mod(8,3) from DUAL
4.日期类函数
sysdate:年月日时分秒
日期+-1,都代表一天的时间,比如:
Select TRUNC(Sysdate-365) from DUAL
Select Sysdate-1/24/60 from DUAL
5.日期运算函数
MONTHS_BETWEEN:表示两个日期的月份之差
Select EMPNO,HIREDATE,MONTHS_BETWEEN(Sysdate,HIREDATE)/12 from EMP
ADD_MONTHS:表示给指定的日期加一个月数
Select HIREDATE,ADD_MONTHS(HIREDATE,3) from EMP
NEXT_DAY:表示以当前时间为基准,下一个"目标日"的日期
Select NEXT_DAY(Sysdate,'星期二') from DUAL
LAST_DAY:计算当前日期的最后一天
Select HIREDATE,LAST_DAY(HIREDATE)-HIREDATE from EMP
ROUND:对日期进行四舍五入
Select ROUND(Sysdate,'YEAR') from DUAL
TRUNC:表示对日期进行截取
Select TRUNC(Sysdate) from DUAL