Oracle常用函数【建议收藏】

现拥有 Oracle 11g OCP/OCM、

Mysql、Oceanbase(OBCA)认证

分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证

从业8年DBA工作,在数据库领域有丰富的经验

B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007

擅长Oracle数据库运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。

在这里插入图片描述

一、概览


INITCAP

返回字符串并将字符串的第一个字母变为大写

INSTR(C1,C2,I,J)

在一个字符串中搜索指定的字符,返回发现指定的字符的位置;

C1 被搜索的字符串

C2 希望搜索的字符串

I 从哪个位置开始找,默认为1,

J 第几次出现,默认为1

SCOTT@ORCL> select instr(‘oracle traning’,‘ra’,1,2) instring from dual;

INSTRING


9

LENGTH:返回字符串的长度;

LOWER: 返回字符串,并将所有的字符小写;

UPPER: 返回字符串,并将所有的字符大写;

RPAD和LPAD(粘贴字符)

RPAD 在列的右边粘贴字符

LPAD 在列的左边粘贴字符

SCOTT@ORCL> select lpad(rpad(‘gao’,10,‘‘),17,’’) string from dual;

STRING


gao

LTRIM和RTRIM

LTRIM 删除左边出现的字符串

RTRIM 删除右边出现的字符串

SCOTT@ORCL> select ltrim(rtrim(’ gao qian jing ‘,’ g’),’ ') string from dual;

STRING


gao qian jin

SUBSTR(string,start,count)

取子字符串,从start开始(包括开始),取count个

SCOTT@ORCL> select substr(13088888888,3,8) string from dual;

STRING


08888888

REPLACE(string,s1,s2)

string 希望被替换的字符或变量

s1 被替换的字符串

s2 要替换的字符串

SCOTT@ORCL> select replace(‘he love you’,‘he’,‘I’) string from dual;

STRING


I love you

ABS:返回指定值的绝对值

CEIL:返回大于或等于给出数字的最小整数

SCOTT@ORCL> select ceil(3.1415927) from dual;

CEIL(3.1415927)


4

FLOOR:对给定的数字取整数

SCOTT@ORCL> select floor(2345.67) from dual;

FLOOR(2345.67)


2345

MOD(n1,n2)

返回一个n1除以n2的余数

SCOTT@ORCL> select mod(10,3),mod(3,3),mod(2,3) from dual;

MOD(10,3) MOD(3,3) MOD(2,3)


1 0 2

ROUND和TRUNC

按照指定的精度进行舍入

round(55.5) = 56

round(55.4) = 55

trunc(sysdate,‘yyyy’) --返回当年第一天

trunc(sysdate,‘mm’) --返回当月第一天

trunc(sysdate,‘day’) --返回当前星期的第一天(周日)

TRUNC(89.985,2)=89.98

TRUNC(89.985)=89 (即取整)

TRUNC(89.985,-1)=80

日期函数

SQL> select to_char(add_months(to_date(‘202012’,‘yyyymm’),2),‘yyyymm’) datum from dual; --增加或减去月份

DATUM


202102

SQL> select last_day(sysdate) datum from dual; --返回本月的最后一天

DATUM


2020/12/31

SQL> select months_between(to_date(‘20000520’,‘yyyymmdd’),to_date(‘20050520’,‘yyyymmdd’)) mon_betw from dual; --月份差异

MON_BETW


-60

SQL> select next_day( sysdate, ‘MONDAY’) from dual; --当前日期的下个星期一

NEXT_DAY(SYSDATE,‘MONDAY’)


2020/12/21 6:52:42

GREATEST:返回一组表达式中的最大值,即比较字符的编码大小

LEAST:返回一组表达式中的最小值

STDDEV(distinct|all)

求标准差,ALL表示对所有的值求标准差,DISTINCT表示只对不同的值求标准差

SQL> select stddev(sal) from scott.emp;

STDDEV(SAL)


1182.503223

pl/sql中的case语句

select (case when DUMMY=‘X’ then 0 else 1 end) as flag from dual;

1.case的第1种用法:

case col when ‘a’ then 1

when ‘b’ then 2

else 0 end

这种用法跟decode一样没什么区别

2.case的第2种用法:

case when score <60 then ‘d’

when score >=60 and score <70 then ‘c’

when score >=70 and score <80 then ‘b’

else ‘a’ end

NVL(expr1, expr2)

expr1为NULL,返回expr2,不为NULL,返回expr1,注意两者的类型要一致

NVL2 (expr1, expr2, expr3)

expr1不为NULL,返回expr2,为NULL,返回expr3,expr2和expr3类型不同的话,expr3会转换为expr2的类型

NULLIF (expr1, expr2)

相等返回NULL,不等返回expr1

to_char 中fm

有9的地方如果有数字就显示如果没有数字就不显示,有0的地方在没有数字的时候也会有0来占位

select to_char(9999.09556,‘fm99999.0900’),to_char(9999.09556,‘fm00099.0900’) from dual;

分析函数

分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行,常用的分析函数如下所列:

row_number() over(partition by … order by …)

rank() over(partition by … order by …)

dense_rank() over(partition by … order by …)

count() over(partition by … order by …)

max() over(partition by … order by …)

min() over(partition by … order by …)

sum() over(partition by … order by …)

avg() over(partition by … order by …)

first_value() over(partition by … order by …)

last_value() over(partition by … order by …)

lag() over(partition by … order by …)

lead() over(partition by … order by …)

二、分析函数


2.1 rank(等级函数,也指示排名函数)

ROW_NUMBER()

定义:ROW_NUMBER()函数作用就是将select查询到的数据进行排序,

每一条数据加一个序号,一般多用于分页查询,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。

对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。

你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:

请转发本文支持一下

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。

你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:

请转发本文支持一下

[外链图片转存中…(img-f7bYpksD-1712054754909)]

[外链图片转存中…(img-1KrlqcJK-1712054754910)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值