2021-05-18

Oracle截取字符串substr、定位下标instr、替换replace

1.截取字符串:substr
-substr从指定的下标开始截取字符串,并返回指定下标后的字符串。(字符串下标从1开始)
例1:select substr(‘helloworld’,1) from dual; --返回结果是:helloworld,从1位开始截取之后的所有字符。
例2:select substr(‘helloworld’,5) from dual; --返回结果是:oworld,从第5位开始截取之后的所有字符。
例3:select substr(‘helloworld’,2,5) from dual; --返回结果是:ellow,从第2位开始,截取5位字符。
例4:select substr(‘helloworld’,0,20) from dual; --返回结果是:helloworld,虽然20超过了字符串长度,但系统会按字符串最大量返回,
不会影响返回结果。
例5:select substr(‘helloworld’,-5) from dual; --返回的结果是:world,返回的是从字符串倒数第5位开始,之后所有字符。
2.定位字符串下标:instr
-instr返回字符串中指定字符,第n次出现的下标,n不写的话默认为第1次,返回值类型为NUMBER。(字符串下标从1开始)
例1:select instr(‘helloworld’,‘h’) from dual; --返回结果为1,instr字符串索引从1开始,默认为从第1个字符开始查找,默认为’h’第1次
出现的下标。
例2:select instr(‘helloworld’,‘o’) from dual; --返回结果为5,从下标1开始,字符’o’第1次出现的下标。
例3:select instr(‘helloworld’,‘o’,1,2) from dual; --返回结果为7,从下标1开始,字符’o’第2次出现的位置。
例4:select instr(‘h elloworld’,‘o’,7,1) from dual; --返回结果为8,从下标7开始,字符’o’第1次出现的位置,空格也算一个字符。
3.查找替换字符串:replace
-更换搜索到的字符串,用另一个字符串代替它,并返回修改后的字符串,如没有替换的字符串,表示将此字符串删除。
例1:select replace(‘helloworld’,‘world’) from dual; --返回结果为:hello,没有写代替字符串,所以将world删除。
例2:select replace(‘helloworld’,‘world’,‘WORLD’) from dual; --返回结果为:helloWORLD。
例3:select replace(‘helloworld’,‘llo’,’ ‘) from dual; --返回结果为:he world,llo被替换为空格。
4.substr和instr相结合
例:select substr(‘hello_wor_ld’,instr(‘hello_wor_ld’,’’,1,2)+1) from dual; --返回结果为ld,截取字符串’hello_wor_ld’中第二个’'之后的所有字符。

感谢:https://blog.csdn.net/weixin_42371234/article/details/116291347

上一篇:Viper FTP for Mac(ftp管理工具) v5.5.4


下一篇:Snagit 2019 for Mac如何合并图像