如何用oracle 截取两个相同字符串之间的字符

2024-11-02 07:22:09
有2个网友回答
网友(1):

select substr(列名,
regexp_instr(列名,'-',1),
(regexp_instr(列名,'-',1,2)-regexp_instr(列名,'-',1,2))
) from 表明

substr(列名,位置1,位置2)意思是截取列名,从位置1开始,截取位置2 为
例如 select substr('410000',1,2) 就是从第一位开始,截取两位,返回的就是41

regexp_instr(列名,'-',1,1)是返回列名第一个'-'的位置,第一个1表示开始位置,可以缺省,默认为从头开始,第二个1表示第一次出现的意思,可缺省
regexp_instr(列名,'-',1,2)是返回列名第二个'-'的位置,1表示开始位置,在这里不能缺省,因为2表示的是第二次出现的意思,如果缺省的话,意思就不对了

网友(2):

没看懂,想做什么?举个例子?