您的位置:首页 > 数据库 > Oracle

oracle函数

2020-04-01 12:29 941 查看

oracle函数

 

 

 

一、大小写函数

lower():全部小写
upper():全部大写
initcap():首字母大写

--小写
select lower ('HAPPY') "Lowercase" from dual

--大写
select upper('last name')"Uppercase" from dual

--首字母大写
select initcap ('the socp') "Capitals" from dual

 

二、字符控制函数

① Concat--连接字符串

select concat ('happy','boy') from dual

② Substr

 substr('要截取的字符串',起始位置)

select substr ('HappyBoy',2,3) from dual

③ length('字符串'):字符个数统计

    lengthb('字符串'):字节个数统计

select length('快乐') 字符数,lengthb('快乐') as 字节数 from dual

④ instr('大字符串','小字符串') 返回小字符串在大字符串中出现的位置

select instrb('corporate floor','or',5,2) "Instring in bytes" from dual

⑤ lpad()和rpad()

lpad则与rpad相反

select rpad('Happy',10,'*') from dual

⑥ trim()去除带有“a”的字符

select trim('a' from 'ahappy') from dual

 

三、日期函数

① months_between:两个日期相差的月数

② add_months:向指定日期中加上若干月数

--两个日期相差的月数

select months_between
(
to_date('02-02-1995','MM-DD-YYYY'),
to_date('01-01-1995','MM-DD-YYYY')
) "Months"
from dual

--向指定日期中加上若干月数

select to_char(add_months(HIREDATE,1),'DD-MON-YYYY') "Next month"
from  emp
where ENAME='WARD';

-----日期相减

---两个日期间的天数
select floor (sysdate - to_date('20020405','yyyymmdd')) from dual;

---两个日期相差的月数
select months_between(sysdate,to_date('20111204','yyyymmdd')) from dual

 

四、转换函数

隐式转换:

--隐式转换
select * from emp
where hiredate='17-12月-80'

显示转换:

--显式转换
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

 

五、数字函数

① round():四舍五入

select round(12.45,1) from dual;

② trunc:截断

select trunc(15.79,1) "Truncate" from dual

 

六、通用函数

nvl和nvl2

--通用函数
select sal*12工资,comm 奖金,sal*12+nvl(comm,0) from emp

select sal*12工资,comm 奖金,sal*12+nvl2(comm,comm,0) from emp

 

七、decode函数

select ename,empno,
decode (ename,'SMITH',1,
'ALLEN',2,
'WARD',3,
'JONES',4) "Location"
from emp
where empno<7600
order by empno,"Location"

转载于:https://www.cnblogs.com/hero96/p/5811112.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
dbcsz68068 发布了0 篇原创文章 · 获赞 0 · 访问量 284 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: