Oracle常用函数汇总

  1. --SQL单行函数练习
  2. --1.日期函数
  3. select add_months(sysdate,2) from dual--添加月
  4. select months_between(sysdate,add_months(sysdate,2)) from dual--计算差值
  5. select last_day(sysdate) from dual--计算当月最后一天
  6. select round(sysdate,'year'),round(sysdate,'month'),round(sysdate,'day') from dual--四舍五入得到日期
  7. select next_day(sysdate,'星期二') from dual--得到下个星期几的日期
  8. select trunc(sysdate) from dual--去除日期后面的时间
  9. select extract(year from sysdate)  from dual--截取指定日期的指定部分
  10. --字符函数
  11. select initcap('hello') from dual--首字母大写
  12. select lower('FUN') from dual--转换为小写
  13. select upper('sun') from dual--转换成大写
  14. select ltrim('xyzdafsdf','xyz') from dual--左裁剪 result:  dafsdf
  15. select rtrim('xyzadtty','tty') from dual--右裁剪 result:xyzad
  16. select translate('jack','abcd','1234') from dual --按字符翻译,result: j13k
  17. select replace('jack and jue','j','bl') from dual--字符串替换 result: black and blue
  18. select instr('worldwide','d') from dual --查找子串位置
  19. select substr('abcseefe',3,2) from dual--截取指定位置字符串
  20. select concat('Hello','World') from dual --连接字符串
  21. select chr(67) from dual--根据ASCII码来返回对应的字母
  22. select lpad('function',15,'*') from dual--左填充,不满15个在左边填充
  23. select rpad('function',15,'*') from dual--右填充,不满15个在右边填充
  24. select trim(leading 9 from 9999994242523424) from dual--裁剪指定字符(leading-字符串开头 , trailing -末尾)
  25. select trim(trailing 9 from 99999942425234249999999999) from dual--裁剪指定字符(leading-字符串开头 , trailing -末尾)
  26. select trim(9 from 99999942425234249999999999) from dual
  27. select length('fafsdfs') from dual--返回字符串长度
  28. select decode(to_char(sysdate,'yyyy'),'2008','yes','no') from dual--逐个比较  yes
  29. --数字函数略
  30. --转换函数
  31. select to_char(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS') from dual
  32. select to_date('2005-12-06','yyyy-mm-dd') from dual
  33. select to_number('1002')*2 from dual
  34. --其他函数
  35. select nvl(comm,12) from emp --将空值设定成指定数字
  36. select nvl2(comm,1,2) from emp --将空值是否为空来判断,不为空,显示1  为空: 显示2
  37. select nullif(122,12) from dual--比较两个表达式,相同返回null 不同则返回第二个表达式
  38. --分组函数
  39. select avg(sal) from emp 
  40. select min(sal) from emp
  41. --其余略……
  42. --分析函数
  43. --对员工工资排名,工资相同,而排名也不同
  44. select ename,job,deptno,sal,ROW_NUMBER() over (order by sal desc) as sal_rank from emp
  45.  --ROW_NUMBER() 函数语法 row_number() over (一个有序数烈) 为排序之后的数据每个编个号
  46. --对员工的工资按部门排名,
  47. select ename,job,deptno,sal,row_number() over (partition by deptno order by sal desc) as sal_rank from emp
  48. --根据员工的工资和佣金对员工在每个部门进行排序, 相同工资相同排名,而排名不连续
  49. select ename,sal,comm,deptno,rank() over (partition by deptno order by sal desc, comm) rank from emp
  50. --
  51. select d.dname,e.ename,e.sal,dense_rank() over (partition by e.deptno order by e.sal desc) denserank from emp e,dept d
  52. where e.deptno=d.deptno
  53.  --首先选择部门名称,员工姓名和工资,再分别计算出每个员工工资在部门中的排位,相同的排位相同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值