玉祥平台客服-15087858732

标题: oracle 字符串截取substr和instr [打印本页]

作者: fteair    时间: 2020-7-12 17:41
标题: oracle 字符串截取substr和instr
    位置是从1 开始
    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


作者: fteair    时间: 2020-7-22 17:14

作者: 张兴康    时间: 2020-7-23 14:11

作者: fteair    时间: 2020-7-23 17:48

作者: fteair    时间: 2020-7-24 17:31





欢迎光临 玉祥平台客服-15087858732 (http://bbs.delit.cn/) Powered by Discuz! X3.2