oracle截取某个特定字符或者某⼀段字符之后或者之前的数据
(instr函数详解)
从开始截取到某⼀个字符之前
select substr('12345678.SZ',1,instr('12345678.SZ','.',1)-1) from dual
从某个字符截取到最后
select substr('12345678.SZ',instr('12345678.SZ','.',1)+1) from dual
说明:
如果要截取的值不包含字符串本⾝,则将长度减1或者加1即可。如果对substr函数不清楚可以查看
字符串长度截取instr函数详细说明:
⽤法:
第⼀种:Instr(name,name2)
第⼆种:instr(name,name2,index,number)
Name 是字段名称 name2 是要截取的关键字或者字符串,默认从字段的第⼀位开始查,遇到第⼀个字符串,返回该字符串的位置(也就是索引),如果截取的字符串有包含多个字符,则返回第⼀个字符的位置。
例1:
select instr('helloword','l') from dual ==>3
select instr('helloword','lo') from dual ==>4
像例1这种情况就是默认从第⼀个字符开始,查字符串遇到第⼀个返回改字符串的位置
例2:
select instr('helloword','l',1,2) from dual ==>4
select instr('hellowordow','ow',1,2) from dual ==>10
select instr('hellowordowhelloword','ow',11,1) from dual ==>16
像例2这种情况就是就是从第三个参数获取到从第⼏位开始查询,从第四个参数获取到第⼏次出现的值,将对应值的位置返回。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论