select substr(‘abcde’,2,3) from dual;
select substr(‘abcde’,-1,3) from dual;
length()
select length(‘abcdefg’) from dual;
select trim(’ hello ') from dual;
select replace(‘hello’,‘l’,‘a’) from dual;//将hello当中的l替换为a
对数值进行计算或操作,返回一个数字。例如:ABS()、MOD()、ROUND()等等。
ceil()
向上取整select ceil(2121.1212) from dual;
floor()
向下取整select floor(45.926,2) from dual;//保留两位小数
round()
保留小数select round(45.926,1) from dual;//保留一位小数
select round(45.926,0) from dual;取整
select round(45.926,-1) from dual;//对个位进位
select round(45.926,-2) from dual;//对十位进行进位
select round(65.926,-2) from dual;
trunc()
不会进位直接截断select trunc(45.926,2) from dual;//截断小数点后两位
select trunc(45.926,1) from dual;//截断小数点后一位
select trunc(45.926,0) from dual;//截断取整
select trunc(45.926,-1) from dual;//截断小数点前一位
select trunc(65.926,-2) from dual;//截断小数点前两位
select mod(9,3) from dual;
select mod(9,4) from dual;
将一种数据类型转换成另外一种类型:例如:TO_CHAR()、TO_NUMBER()、TO_DATE()等等。
数值转字符 字符转数值 日期类型
to_number(str)
select 100+‘10’ from dual;//已经自动转换
select 100 + to_number(‘10’) from dual;
两种方式效果相同
select ename,to_char(sal,‘$9,999.99’) from emp;
to_char()
select to_char(sysdate,‘yyyy-mm-dd hh:mi:ss’) from dual;
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;
select to_char(sysdate,‘yyyy’) from dual;
select to_char(sysdate,‘d’) from dual;
select to_char(sysdate,‘dd’) from dual;
select to_char(sysdate,‘ddd’) from dual;
select to_char(sysdate,‘day’) from dual;//获取星期的全称
select to_char(sysdate,‘dy’) from dual;//获取星期的缩写
对时间和日期进行操作的函数。
例如:TRUNC()、SYSDATE()、ADD_MONTHS()等等。
select sysdate from dual;
select add_months(sysdate,3) from dual;
select sysdate + 3 from dual;
select ename,ceil(sysdate - HIREDATE) from emp;
select ename,ceil((sysdate - HIREDATE)/7) from emp;
select ename,ceil(months_between(sysdate,hiredate)) from emp;
select ename,ceil(months_between(sysdate,hiredate)/12) from emp;
select to_date(‘2017-04-10’,‘yyyy-mm-dd’) from dual;
select * from emp where hiredate between to_date(‘1981’,‘yyyy’) and to_date(‘1985’,‘yyyy’);
nvl(参数1,参数2)
;//如果参数1为null返回参数2nvl(参数1,参数2,参数3)
;//如果参数1位null就返回参数3,否则返回参数2select nvl2(null,5,6) from dual;
select nvl2(1,5,6) from dual;
nullif(参数1,参数2)
如果 参数1 等于 参数2 那么就返回null,否则返回 参数1select nullif(1,1) from dual;
select nullif(1,2) from dual;
select nullif(5,6) from dual;
select nullif(6,6) from dual;
coalesce()
返回第一个不为null参数的函数select coalesce(null,null,3,5,6) from dual;
select coalesce(null,null,null,5,6) from dual;
二、聚合函数(多行函数):
聚合函数同时可以对多行数据进行操作,并返回一个结果。比如 SUM(x)返回结果集中 x 列的总合。
聚合函数直接忽略空值(null)
select sum(sal) from emp;
select sum(comm) from emp;
select count(1) from emp;
select avg(comm) from emp;
这样是错误的结果在计算的时候加上了空值
需要这样计算
select sum(comm)/count(1) from emp;
三、条件表达式
case 字段