Oracle中的函数及简单使用

目录

单行函数

字符函数

upper---小写变大写

lower---大写变小写

length---求字符串长度

substr---截取字符串

concat---拼接字符串

数值函数

round---四舍五入

trunc---去尾(截取)

mod---取余

日期函数

sysdate--当前时间

months_between---两个时间之间相差的月份

add_months---加指定数量月份

last_day---求指定月的最后一天日期

转换函数

to_date---字符串转换为日期

to_number---字符串转数字

to_char---数字转换为字符串

to_char---日期转换为指定格式的字符串

其他函数

nvl---空值处理,如果第一位是null值,就使用第二位数值

decode---条件取值,可以理解为 switch case,或者理解为SQL里的 case when then else end

多行(聚合)函数

count---统计数量

max---最大值

min---最小值

avg---平均值

sum---求和


函数的分类

Oracle的函数分为单行函数和多行函数

单行函数

作用于一行,只返回一个值

字符函数

upper---小写变大写

select upper('hi oracle') from  dual;

lower---大写变小写

select lower('hi oracle') from  dual;

length---求字符串长度

select length(goodsname) as length from goodsinfos where rownum < 2;

select length('hello') from dual;

substr---截取字符串

select substr('hello', 2, 2) from dual;

截取字符串,从第几位开始,截取几位,注意,这个字符串的计数是从1开始的,不是从0开始的

concat---拼接字符串

select concat('hello ', 'oracle') from dual;

注意,拼接只支持两个部分,如果想要拼接更多的,那就只能嵌套拼接

如果想要拼接多个部分,可以使用 '||',注意,不是或,是 || ,拼接  ,要知道SQL是另一种语言,你在别的地方代表或,在SQL并不是

select 'hello' || ',' ||'oracle' from dual;

数值函数

round---四舍五入

select round(99.99) from dual;

select round(99.123456, 4) from dual;

第二个参数代表保留的小数位数

trunc---去尾(截取)

select trunc(99.123456, 1) from dual;

select trunc(99.123456, 3) from dual;

mod---取余

select mod(99, 2) from dual;

日期函数

sysdate--当前时间

select sysdate from dual;

时间可以直接相减相加,单位是天

select sysdate - 1 from dual;
select sysdate + 1 from dual;

months_between---两个时间之间相差的月份

select months_between(sysdate, CREATE_TIME) from goods_orders;

add_months---加指定数量月份

select add_months(sysdate, 1) from dual;

当然,也可以加负数,那就是减月份了

select add_months(sysdate, -1) from dual;

last_day---求指定月的最后一天日期

select last_day(sysdate) from dual;

如果想算上个月,那就这样写

select last_day(sysdate - 16) from dual;

转换函数

to_date---字符串转换为日期

select to_date('20210512102616', 'yyyy-mm-dd hh:mi:ss') from dual;

to_number---字符串转数字

select to_number('99') + to_number('100') from dual;

to_char---数字转换为字符串

select to_char(199) from dual;

to_char---日期转换为指定格式的字符串

select to_char(sysdate, 'yyyymmddhhmiss') from dual;

如果想让小时变成24小时制的,可以在hh后边加上24

select to_char(sysdate, 'yyyymmddhh24miss') from dual;

其他函数

nvl---空值处理,如果第一位是null值,就使用第二位数值

这个函数有什么用呢,看这个SQL,猜猜看执行结果是什么

select 1 + null from dual;

错,结果不是1,是null,null参与的任何运算,结果都是null

想要避免这种情况,可以使用nvl函数

select 1 + nvl(null, 0) from dual;

select 1 + nvl(null, 10) from dual;

decode---条件取值,可以理解为 switch case,或者理解为SQL里的 case when then else end

select decode('hello', '1', '2' ,'hello', 'oracle', '没有匹配到') from dual;

执行结果如下

这个函数的解释就是  decode (等待匹配值,匹配值1,匹配值1如果匹配成功返回的结果,匹配值2,匹配值2如果匹配成功返回的结果,匹配值n,匹配值n如果匹配成功返回的结果,如果匹配不成功返回这个结果)

上面是匹配成功的,这次我们试试不成功的

select decode('hello', '1', '2' ,'hello啊', 'oracle', '没有匹配到') from dual;

多行(聚合)函数

作用于多行,只返回一个值

count---统计数量

select count(1) from goodsinfos;

 

max---最大值

select max(id) from goodsinfos;

min---最小值

select min(id) from goodsinfos;

avg---平均值

select avg(id) from goodsinfos;

sum---求和

select sum(id) from goodsinfos;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值