Oracle——SUBSTR()截取字符串,INSTR()查找字符串
作者:mmseoamin日期:2023-12-25
  • SUBSTR()函数:截取字符串

    使用语法:SUBSTR(string,start, [length])

    string:需要截取的字符串

    start:  起始位置,-3表示从倒数第三个字符开始,从左往右截取。

    length:截取长度(默认截取到末尾)。

    • INSTR()函数:查找字符串

      使用语法:INSTR(string,str, [start],[which])

      string:源字符串。

      str:查找的子字符串(可以是单个字符)。

      start:起始位置(默认从开头查找),-3表示从倒数第三个字符开始,从右往左查找。

      which:查找第几个。

      • SUBSTR()和INSTR()组合使用

        组合使用可以截取两个字符中间的字符串,下面例子从字符串'da.bai.cai'中截取到'bai':

        1.先使用SUBSTR函数写出模板

        SUBSTR('da.bai.cai', 开始位置,长度)

        2.开始位置:查找到第一个分隔符再加一

        INSTR('da.bai.cai','.',1,1)+1

        3.长度:中间位置长度不确定,所以查找第二个分隔符位置减去开始位置得到

        INSTR('da.bai.cai','.',1,2) - (INSTR('da.bai.cai','.',1,1)+1)

        4.结果为:

        SELECT SUBSTR( 'da.bai.cai', 
                       INSTR('da.bai.cai','.',1,1)+1,
                       INSTR('da.bai.cai','.',1,2) - INSTR('da.bai.cai','.',1,1)-1 )
        FROM DUAL;