Oracle中SubStr和Instr的用法

1、Instr的用法

  • 用处:instr函数为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置。instr函数在Oracle/PLSQL中是返回要截取的字符串在源字符串中的位置。

  • 语法
    instr( string1, string2, start_position,nth_appearance )
    参数
    ● string1:源字符串,要在此字符串中查找。
    ●string2:要在string1中查找的字符串 。
    ●start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
    ●nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。 [2]
    注意
    位置索引号从1开始。
      如果String2在String1中没有找到,instr函数返回0。
     示例:
      SELECT instr(‘syranmo’,‘s’) FROM dual; – 返回 1
      SELECT instr(‘syranmo’,‘ra’) FROM dual; – 返回 3
      SELECT instr(‘syran mo’,‘at’,1,2) FROM dual; – 返回 0

2、SubStr的用法

  • 用处:substr函数在oracle中使用表示被截取的字符串或字符串表达式。和instr()函数不同,instr()函数是要截取的字符串在源字符串中的“位置”,substr()函数是截取字符串的“内容”。

  • substr(string,start,length)
    参数 必须 参数说明
    string 必须 指定的要截取的字符串
    start 必须
    规定在字符串的何处开始:
    正数 - 在字符串的指定位置开始
    负数 - 在从字符串结尾的指定位置开始
    0 - 在字符串中的第一个字符处开始
    length 可选 指定要截取的字符串长度,缺省时返回字符表达式的值结束前的全部字符

  • 例如:
    select substr(‘abcdefg’,3,4) from dual;结果是cdef
    select substr(‘abcdefg’,-3,4) from dual;结果efg
    select substr(‘abcde’,2),substr(‘abcde’,-2),substr(‘abcde’,2,3),substr(‘abcdewww’,-7,3) from dual;
    结果是bcde、de、bcd、bcd

2.1、oracle去除尾部字符串 字符串截取

SELECT substr('abcdefg-1',1,length('abcdefg-1')-1) FROM DUAL
  • substr第一个参数指的是被截取的字符串,第二个参数指从字符串的第几个位置开始截取,第三个参数指到字符串的哪个位置结束

3、案例:

  • “(N20.101)输尿管结石” 将这个字符串的编码和文字分开输出。
select substr('(N20.100)输尿管结石',
              2,
              instr('(N20.100)输尿管结石', ')', 1, 1) - 2)
  from dual;
  
select substr('(N20.100)输尿管结石',
              instr('(N20.100)输尿管结石', ')', 1, 1) + 1)
  from dual;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值