Oracle函数

Oracle单行函数

字符函数

接收字符输入返回字符或者数值,dual 是伪表

1. 字符串的连接可以使用 concat 可以使用“||”建议使用“||”

select concat('hello', 'world') from dual;
select 'hello'||'world' from dual;

2. 字符串的截取,使用 substr,
第一个参数是源字符串,第二个参数是开始索引,第三个参数长度,
开始的索引使用 1 和 0 效果相同

select substr('hello', 1,3) from dual;
select substr('hello', 0,3) from dual;

3.获取字符串的长度
select length('hello') from dual;

4. 字符串替换,第一个参数是源字符串,第二个参数被替换的字符串,第三个是替换字符串

select replace('hello', 'l','x')  from dual;

数值函数

--四舍五入: round(v1,p1) :v1 要处理的数字;p1:要保留的小数位数
select round(199.5622) from dual;--200
select round(199.5652,2) from dual;--199.57

--截断:trunc
select trunc(199.5622) from dual;--199
select trunc(199.5652,2) from dual;--199.56

--求余:mod
select mod(199.5622,10) from dual;--9.5622
select mod(199,19) from dual;--9

日期函数

--系统时间
select sysdate from dual;--oracle服务所在机器上的时间


--查询员工入职的天数 : 现在的时间-入职时间
select empno,ename,hiredate,trunc(sysdate-hiredate) from  emp;

--查询员工入职的周数
select empno,ename,hiredate,trunc((sysdate-hiredate)/7) from  emp;


--获得两个时间段中的月数: MONTHS_BETWEEN()
--计算员工的入职月数
select empno,ename,hiredate,round(months_between(sysdate,hiredate)) from  emp;

转换函数

to_char: 转成字符串
--数字转成字符串
select 123 as "这个是数字数字",to_char(123) as "转成字符串" from dual;

--日期转成字符串
select 
       sysdate,
       to_char(sysdate,'yyyy') as "年份",
       to_char(sysdate,'yyyy-mm-dd') as "年月日",
       to_char(sysdate,'yyyy-mm-dd hh:mi:ss') as "到12时分秒",
       to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as "到24时分秒"
from dual;



--把字符串转成数字
select '123',to_number('123') from dual;

--把字符串转成日期
Select '2018-01-01',to_date('2018-01-01','yyyy-mm-dd') from dual;

空值处理 nvl

nvl(v1,p1) 

--处理空值:nvl(v1,p1) : 当v1等于空值的时候,用p1来代替
select empno,ename,sal ,sal*12 as 年薪,comm 奖金, sal*12+nvl(comm,0) as 年收入
from emp;


nullif(p1,p2)

条件表达式

--案例:当部门编号等于10,显示java部门;当等于20的时候,显示UI部门,其他都是Python部门
--sql99 的标准
select empno,ename,deptno ,
       case deptno 
         when 10 then 'java部门'
         when 20 then 'UI部门'
         else 'Python部门'
       end as "部门名称"
from emp;

--oracle独有
select empno ,ename,deptno,
       decode(deptno,
              10,'java部门',
              20,'UI部门',
              'Python部门') as "部门名称"
from emp;
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页