oracle函数

一、字符串相关函数:

1、连接字符串:

(1)concat(),

        在mysql中可以直接连接多个字符串,但是在oracle中,一次只能连接两个:

select concat('hello','world')from dual;--可以正常运行,打印出helloworld
select concat('hello',',''world')from dual--报错

如果真的要连接多个字符串,就要嵌套:

select concat(concat('hello',','),'world')from dual;--多个嵌套

(2)||连接符:

select 'hello'||','||'word'from dual;--使用||连接符拼接字符
select t.job,t.ename,t.job||'_'||t.ename as a from emp t;--拼接字段内容。

        (3)initcap:所有单词首字母大写:

select initcap('software is like sex,it is better when it is free') from dual;
    select e.job,e.ename initcap(e.job||'_'||e.ename)from emp e;

(4)upper/lower :所有字母大写/小写:

select e.job,e.ename,upper(e.job||'_'||e.ename) from emp e;
select e.job,e.ename,lower(e.job||'_'||e.ename) from emp e;

(5)instr:相当于java的 indexof

select instr('hello','e') a from dual;--查找e在hello中出现的位置
select instr('hellohello','e',3) a from dual;--查找e从第三个位置开始在hello中出现的位置
select instr('hellohello','e',3,2) a from dual;--查找e在hello中从第三个位置开始第二次出现的位置

 (6)substr:和js中的substr用法相同,substr('aaabbb',3,2)截取字符串从第三位开始截取2个字符。

(7)rpad/lpad 补全,用法:rpad(helllo,10,'@')使用@在hello右边进行补全,直到字符串够十位,ipad是从左边进行补全。

rpad:

select rpad('aaa',10,'@')from dual;--用‘@’符号在查到的字符串后面补全到十位。顺序不能错。
select rpad('aaa','@',10)from dual;--这种形式查不到。

查询结果:

lpad:在目标左边补全:

select lpad(1,7,0)from dual;--结果为:0000001;
create sequence seq_order_id;创建一个序列,可以使结果递增。
select lpad(seq_order_id.nextval,7,0)from dual;--每次查询结果都递增1,

 

 

to_char:使日期格式转换为字符串:

select to_char(sysdate,'YYYY-MM-DD')from dual;

-- 生成一个订单号 订单号必须ord开头 长度为15位 ord后加上当前日期 其余位按照数字递增 ord202007080001.....

select 'ord'||to_char(sysdate,'YYYYMMDD')||lpad(seq_order_id.nextval,4,0) from dual;

8.去除字符空格:

select ltrim ('   aaa'),'  aaa' from dual;--去除左边空格。
select rtrim('aaa     ')from dual;--去除右边空格。
select length(trim ('    aaa    '))from dual;--去除左右两边空格,查到字符长度为3,证明空格去除成功。
select trim('a'from 'aaa113aaa')from dual --去除字符左右两端的a字母。

 去除左右两边空格,第三行的结果:

去除左右两边a字母,第四行的结果:

二、日期函数:

1、sysdate 获取当前时间:

        select sysdate from dual;

2、 add_months:增加月:

select  add_months(sysdate,-2),sysdate from dual;

3、两个日期相减,得到天数差:

select sysdate,sysdate-to_date('2022-02-03 17:51:43','YYYY-MM-DD hh24:mi:ss')from dual;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值