Oracle 截取指定字符串

发布时间 2023-12-19 15:53:44作者: 五字妹妹实在是棒
-- INSTR 定位指定字符串
-- 第一次出现的位置 3 (没有的话返回0)
SELECT INSTR('某某/123/abc','/',1) FROM DUAL ;
-- 从第四个位置开始 第一次出现的位置 7
SELECT INSTR('某某/123/abc','/',4,1) FROM DUAL ;
-- 从右向左第一个字符开始第一次出现的位置 7
SELECT INSTR('某某/123/abc','/',-1,1) FROM DUAL ;

-- SUBSTR(字符串, 开始位置, 截取位置)
-- 某某
SELECT SUBSTR('某某/123/abc',1,INSTR('某某/123/abc','/',1)-1) FROM DUAL ;
-- 12
SELECT SUBSTR('某某/123/abc',INSTR('某某/123/abc','/',1)+1,INSTR('某某/123/abc','/',2)-1) FROM DUAL ;
-- abc
SELECT SUBSTR('某某/123/abc',INSTR('某某/123/abc','/',1,2)+1) FROM DUAL ;

-- REGEXP_SUBSTR(需要处理的字符串, 进行匹配的正则表达式, 起始位置默认1, 标示第几个匹配组, 模式(默认'c'区分大小写进行检索, 'i'不区分大小写进行检索))
-- 某某
SELECT REGEXP_SUBSTR('某某/123/abc','[^/]+',1,1,'i') FROM dual ;
-- 123
SELECT REGEXP_SUBSTR('某某/123/abc','[^/]+',1,2,'i') FROM dual ;
-- abc
SELECT REGEXP_SUBSTR('某某/123/abc','[^/]+',1,3,'i') FROM dual ;

参考文章:https://blog.csdn.net/shileimohan/article/details/102511351

参考文章:https://www.cnblogs.com/yuany69/p/6093017.html