oracle单表函数查询

1. 字符串转小写lower(员工姓名)


select lower(ename) from emp;


2. 首字母转大写initcap(员工姓名)


select initcap(ename) from emp;


3. 字符串取长度length


select length('length') from dual;


4. 字符串替换replace(员工姓名A-_)


select replace(ename,'A','_') from emp;




5. 字符串截取substr(员工姓名前三位)


select ename,substr(ename,1,3) from emp;


select ename,substr(ename,0,3) from emp;


select ename,substr(ename,-1,3) from emp;


6. 两边去空格trim(员工姓名)


select trim(ename) from emp;


7. 四舍五入round(953.6286,0,1,2,-1,-2)
ROUND(数字 | 列 [,保留小数的位数])


select round(953.6286) from dual;   954


select round(953.6286,0) from dual; 954


select round(953.6286,1) from dual; 953.6


select round(953.6286,2) from dual; 953.63


select round(953.6286,-1) from dual; 950


select round(953.6286,-2) from dual; 1000




8. 舍弃内容trunc(953.6286,0,1,2,-1,-2)
TRUNC(数字 | 列 [,保留小数的位数])




select round(953.6286) from dual;   953


select round(953.6286,0) from dual; 953


select round(953.6286,1) from dual; 953.6


select round(953.6286,2) from dual; 953.62


select round(953.6286,-1) from dual; 950


select round(953.6286,-2) from dual; 900


9. 取模mod(10,3)取余数:MOD(数字 1,数字2)


select mod(10,3) from dual;


10. 获取当前时间sysdate


select sysdate from dual;


11. 表示若干天之后的日期+3


select sysdate+3 from dual;


12. 两个日期间的天数差sysdate-hiredate


select ename,hiredate,sysdate-hiredate from emp;


select trunc(sysdate-a.hiredate) from emp a;


13. 本月的最后一天日期last_day


select last_day(sysdate) from dual;


14. 两个日期间的月份差months_between


select ename,hiredate,trunc(months_between(sysdate,hiredate))
 from emp;
 
 
15. 求出四个月后的日期
 
  select add_months(sysdate,4) from dual;
  
16. 日期变为字符串to_char(mi,hh24,yyyy,day)


 select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;
 
17. 数字变为字符串to_char


SELECT TO_CHAR(89078907890,'L999,999,999,999,999') FROM dual;




18. 字符串转日期to_date(yyyy-mm-dd hh:mi:ss)


SELECT TO_DATE('2017-09-07 11:33:22','yyyy-mm-dd hh:mi:ss') FROM dual;


19. 字符串转数字TO_NUMBER(‘123’+4)TO_NUMBER 可以把字符串转换成数值,在oracle中是自动转换的


select '123' + 4 from dual;




20. DECODE()多值判断


查询员工和领导的薪资等级

select e.ename,e.job,e.sal,m.ename,d.dname,
decode(s1.grade,1,'第一级',2,'第二级',3,'第三级',4,'第四级','第五级'),
decode(s2.grade,1,'第一级',2,'第二级',3,'第三级',4,'第四级','第五级')
 from emp e
left join emp m on e.mgr=m.empno
left join dept d on e.deptno=d.deptno
left join salgrade s1 on e.sal between s1.losal and s1.hisal
left join salgrade s2 on m.sal between s2.losal and s2.hisal

21. case when条件判断
case 列名 
when ‘匹配值’ then ‘返回值’
when ‘匹配值’ then ‘返回值’
Else ‘返回值’
End


select empno,ename,job,case job when 'CLERK' then '办事员'

when 'SALESMAN' then '销售人员'

else '其他'

end

from emp;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章