oracle常用函数

字符函数:
Upper:小写转大写
SELECT Upper ('abcde') FROM dual ; 
Lower:大写转小写
SELECT lower('ABCDE') FROM dual ;
Concat :拼接
Select concat('a','b') from dual; 
Select 'a'|| 'b' from dual; 

substr 
Select substr('abcde',length('abcde')-2) from dual; 
Select substr('abcde',-3,3) from dual; 从倒数第三为截取三位

Replace :替代
Select replace(ename,‘a’,‘A’) from emp; 

Instr :返回字符串中存在某字符串的位置
Select instr('Hello World','or') from dual; 8 indexof 

Trim :过滤首尾空格 trim() Mr Smith
trim(' Mr Smith ') 

数值函数 
Round 
select round(412,-2) from dual; 整数部分的倒数第二位为进位位
select round(412.313,2) from dual;四舍五入保留两位小数
Mod 
Trunc 
select trunc(412.13,-2) from dual; 

日期函数 (注:sysDate为日期类型)
Months_between() 

select months_between(maxDate,minDate) from emp; 

Add_months() 
select add_months(sysDate,1) from dual; 

Next_day() :返回该日期的下一个星期一的日期
select next_day(sysDate,'星期一') from dual; 

Last_day ():返回该日期月份的最后一天的日期
select last_day(sysDate) from dual; 

计算两个日期相差的天数
select to_date(maturity_date,'yyyyMMdd')-to_date(remit_date,'yyyyMMdd')from draft_info

转换函数 
To_char() (注:sysDate为日期类型)
select to_char(sysDate,'yyyyMMddhhmiss') from dual; 
select to_char(sysDate,'yyyy') from dual; 
select to_char(sysDate,'fmyyyy-mm-dd') from dual; 返回样式:2012-9-9
select to_char(sysDate,'yyyy-mm-dd') from dual; 返回样式:2012-09-09
select to_char(sal,'L999,999,999') from emp;
select to_char(sysDate,'D') from dual;//返回数子星期 
select to_char(sysDate,'DY') from dual;//返回字符串星期 

To_number() :字符 类型转换为数据类型
select to_number('13')+to_number('14') from dual; 

To_date() :字符串类型转换为日期类型
Select to_date(‘20090210’,‘yyyyMMdd’) from dual; 

通用函数 
NVL()函数 
select nvl(comm,0) from emp; 

NULLIF()函数 
如果表达式exp1与exp2的值相等则返回null,否则返回exp1的值 

NVL2()函数 
select empno, ename, sal, comm, nvl2(comm, sal+comm, sal) total from emp; 

COALESCE()函数 
依次考察各参数表达式,遇到非null值即停止并返回该值。 
select empno, ename, sal, comm, coalesce(sal+comm, sal, 0)总收入 from emp; 

CASE表达式 
select empno, ename, sal, 
case deptno 
when 10 then '财务部' 
when 20 then '研发部' 
when 30 then '销售部' 
else '未知部门' 
end 部门 
from emp; 

DECODE()函数 
和case表达式类似,decode()函数也用于实现多路分支结构 
select empno, ename, sal, 
decode(deptno, 10, '财务部', 20, '研发部', 30, '销售部', '未知部门') 部门 from emp; 

分组函数
count、avg、min、max、sum
如果数据库表中没有记录,count(*)返回的不是null,而是0

可使用NVL()函数强制分组函数处理空值 
select avg(nvl(comm, 0)) from emp; 

select deptno, job, avg(sal) 
from emp where hiredate >= to_date('1981-05-01','yyyy-mm-dd') 
group by deptno,job 
having avg(sal) > 1200 
order by deptno,job; 













  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值