您的位置:首页 > 数据库 > Oracle

oracle实现字符串截取,查找,替换

2015-11-26 20:52 465 查看
1、字符串截取:substr

substr(string, start_position, [length]),其中,string是元字符串,start_position为开始位置(注意首位从0开始),length是可选项,表示子字符串的位数。

eg 1、substr('ABCDEFG', 0); -- 返回结果是:ABCDEFG,从0位开始截取后面所有。

eg 2、substr('ABCDEFG', 2); -- 返回结果是:CDEFG,从2位开始截取后面所有。

eg 3、substr('ABCDEFG', 0, 3); -- 返回结果是:ABC,从0位开始往后截取3个字符长度。

eg 4、substr('ABCDEFG', 0, 100); -- 返回结果是:ABCDEFG,虽然100超出了元字符串长度,但是系统会按元字符串最大数量返回,不会影响返回结果。

eg 5、substr('ABCDEFG', -3); -- 返回结果是:EFG,如果是负数,则从尾部往前数,截取-3位置往后的所有字符串。

2、字符串查找:instr

instr(string, subString, [start_position], [nth_appearance])

其中,string是元字符串;subString是要查找的子字符串;start_position是要查找的开始位置,为可选项(默认为1),如果此参数为正,则从左到右检索,如果此参数为负,则从右到左检索;nth_appearance是元字符串中第几次出现的子字符串,此参数可选,缺省默认为1,如果是负数则系统报错。返回结果为子字符串最后一个字符在元字符串中的位子。

eg 1、instr('ABCDABCDAEF', 'AB'); -- 返回结果是:1,因为instr字符串索引从0开始。

eg 2、instr('ABCDABCDAEF', 'DA', 1, 2); -- 返回结果是:8,返回第二次出现'DA'的位置。

3、替换字符串:replace

replace(str1, str2, str3)

其表示的意思是:在str1中查找str2,凡是出现str2的地方,都替换成str3。

eg 1、replace('ABCDEFG', 'ABC', 'abc'); -- 返回结果是:abcDEFG。

eg 2、replace('ABCDEFG', 'ABC', ''); -- 返回结果是:CDFG,ABC被替换成空字符。

eg 3、replace('ABCDEFG', 'ABC'); -- 返回结果是:CDFG,当不存在第三个参数时,ABC直接被删掉,类似于第二种效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: