oracle常用的字符串函数,oracle常用字符串函数

字符串是由两个引号来定义的,而在两个引号中没有任何字符时,表示NULL值。

一、字符串替换

replace和translate函数

replace和translate都是拥有字符替换的功能,replace是以字符串为单位,translate是以单个字符为单位。

语法:replace(‘目标字符串’, ‘待搜索字符串’, ‘替换字符串’)

select replace('123456abcdefg', 'abc', '00') from dual;

结果:12345600defg

语法:translate(‘目标字符串’, ‘待搜索字符’, ‘替换字符’)

select translate('123456abcdefg', 'a1f', '!@#') from dual;

结果:@23456!bcde#g

字符的对应关系:a -> !,1 -> @,f -> #

如果替换字符对应为空,则在目标字符串中去除搜索字符:

select translate('123456abcdefgZ', '#0123456789abcdefg', '#') from dual;

结果为Z。

可以用这个特点来检测一个字符串的字符是否在某个范围内,如果返回空,则字符串在目标字符范围内。

translate函数第三个参数不能为空,否则结果是NULL。replace函数第三个参数为空表示将待搜索的字符串去除。

二、字符串查找

insrt函数

语法:instr(‘目标字符串’, ‘待查找字符串’, ‘查找位置’, ‘查找第几次出现的’);

查找位置:默认为1,-1表示从后往前找

查找第几次出现的:找到某个字符串第n次出现的位置,默认为1

SQL> select instr('oracle123oracle456','ora') from dual;

INSTR('ORACLE123ORACLE456','ORA')

---------------------------------

1

SQL> select instr('oracle123oracle456','ora',1,2) from dual;

INSTR('ORACLE123ORACLE456','ORA',1,2)

-------------------------------------

10

SQL> select instr('oracle123oracle456','ora',-1) from dual;

INSTR('ORACLE123ORACLE456','ORA',-1)

------------------------------------

10

///从后往前找第一个遇到的ora字符串,所以结果也是10

三、字符串截取

substr函数

语法:substr(‘待截取的字符串’, 偏移量, 截取的长度);

注意,截取的长度是包括偏移量这个位置本身的。第三个参数不写,默认截到字符串的最后。

select ename from emp order by substr(ename, length(ename)-1, 2);

四、字符串填充

rpad函数,从右边对字符串使用指定的字符进行填充

语法:rpad(‘被填充的字符串’,’返回字符串的长度’, ‘填充的内容’)

SQL> select rpad('#', 25, '#') from dual;

RPAD('#',25,'#')

-------------------------

#########################

///返回了25个#号,填充了24个#号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值