oracle 函数集

--------------------
--|    字符函数    |
--------------------

--字符串连接 asssbsss
Select concat('asss','bsss') from dual;
select 'a'||'b' from dual;
--单词首字母大写 Red Hat
select initcap('red hat') from dual;
--字符串截取 结果为 def
Select substr('abcdef',length('abcdef')-2) from dual;
Select substr('abcdef',-3,3) from dual;
--取字符串长度 6
select length('123456') from dual;
--字符替换 111111
select replace('aaaaaa','a','1') from dual;
--查找子串的位置 8
select instr('hello world','or') from dual;
--左侧填充* 总长度为8 结果为 ***muger
select lpad('muger',8,'*') from dual;
--右侧填充 muger***
select rpad('muger',8,'*') from dual;
--过滤首尾空格
select trim('   muger   ') from dual;

--------------------
--|    数值函数    |
--------------------

--四舍五入
select round(456.6,-2) from dual; --500
select round(412.316,2) from dual; --412.32
--取余数
select mod(33,5) from dual; --33mod5 = 3
--取下界 直接舍掉 不四舍五入
select trunc(477.13,-2) from dual; --400

--------------------
--|    日期函数    |
--------------------

--计算相差月份 结果单位为(月)sysdate为当前系统时间
select months_between(sysdate,sysdate-31) from dual; -- 1
--日期月份加 n
select add_months(sysdate,1) from dual; --sysdate=2010-8-3 17:10:29 返回结果为 2010-9-3 17:10:29
--得到下一个 星期三 那天此时的日期
select next_day(sysdate,3) from dual; --
select next_day(sysdate,'星期三') from dual;--同上
--获取当月最后一天 此时的日期
select last_day(sysdate) from dual;

--------------------
--|    转换函数    |
--------------------

--日期到字符串的转换
select to_char(sysdate,'yyyy') from dual; --取年'yyyy' 月 'mm' 日 'dd' 时 'hh' 分 'mm' 秒 'ss'
select to_char(sysdate-20,'fmyyyy-mm-dd') from dual; --单月单日不补0 例如 2010-8-18 而不是 2010-08-18
select to_char(45641313,'L999,999,999') from dual;--  ¥45,641,313
select to_char(sysdate-20,'d') from dual;--返回星期

--字符串转数字
select to_number('13')+to_number('14') from dual; --27

--字符串转日期
Select to_date('20090210','fmyyyyMMdd') from dual; --2009210

--------------------
--|    通用函数    |
--------------------

--如果为NULL 用0替换
select nvl(null,0) from dual; --0
--如果表达式exp1与exp2的值相等则返回null,否则返回exp1的值
select nullif(12,12) from dual; --null
--exp1是null 返回exp3 否则返回exp2
select nvl2(3,12+5,8) from dual; --17 
--依次考察各参数表达式,遇到非null值即停止并返回该值。
select coalesce(null,null,null,2,null) from dual; --2
--case表达式
select a,b,
case c
     when 10 then '十'
     when 20 then '二十'
     when 30 then '三十'
     else '未知'
end 数字
from 
(select 20 as a,35 as b,30 as c from dual);
--decode表达式 --结果case
select a,b,
decode(c,
     10,'十',
     20,'二十',
     30,'三十',
     '未知')
数字
from 
(select 20 as a,35 as b,30 as c from dual);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值