欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle 字符串截取substr和instr

程序员文章站 2022-04-24 18:17:25
位置是从1 开始 substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符 substr("ABCDEFG", 1); //返回:ABCDEFG,截取所有字符 substr("ABCDEFG", -0); //返回:ABCDEFG,截取所有字符 -0=0,都是从左边截 su ......
  1. SUBSTR(string,start_position,[length])    求子字符串,返回字符串
    解释:string 元字符串
           start_position   开始位置(从0开始)
           length 可选项,子字符串的个数
    For example:

    位置是从开始
    substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符 

    substr("ABCDEFG", 1); //返回:ABCDEFG,截取所有字符 

    substr("ABCDEFG", -0); //返回:ABCDEFG,截取所有字符  -0=0,都是从左边截

    substr("ABCDEFG", -0,1); //返回:A,从左截1位

    substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符 

    substr("ABCDEFG", -2); //返回:FG,从右边数第二位开始截取

    substr("ABCDEFG", -2,1); //返回:F,从右边数第二位开始截取1位长度
    substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符 
    substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 
    substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。

 

 

   2. INSTR(string,subString,position,ocurrence)查找字符串位置 从1开始
    解释:string:源字符串
            subString:要查找的子字符串
         position:查找开始位置(从1开始) 不可以是0,会找不见,-是从右边找

    比如:-2 从右边第二位开始找,

    ocurrence:源字符串中第几次出现的子字符串 不加这个参数默认是1

    substr("ABCDEFG", -2,1); //返回:F,从右边数第二位开始截取1位长度

    select instr('ABCDEFGABCDEFG','B',2) from dual   返回2

    select instr('ABCDEFGABCDEFG','B',3) from dual   返回9

    select instr('ABCDEFGABCDEFG','B',-1) from dual   返回9

    select instr('ABCDEFGABCDEFG','B',-1,2) from dual 返回2

    select instr('ABCDEFGABCDEFG','B',1,2) from dual  返回9

 

 


      For example:   取A001HZJKQS   中间的001

substr('A001HZJKQS',2,instr('A001HZJKQS','HZJKQS',1)-2)

 

 参考贴:  https://www.cnblogs.com/cyblogs/p/5983612.html