Oracle SQL获取2个特殊字符之间的值

时间:2015-07-31 08:45:25

标签: sql oracle

我正在寻找一个Oracle SQL查询来从'LATCH'

获取值'RTG/LATCH.PETROL_ABC'

由于

2 个答案:

答案 0 :(得分:4)

您可以使用正则表达式:

select regexp_replace('RTG/LATCH.PETROL_ABC', '.*/(.+)\..*', '\1' ) from dual

首先我们找到匹配项:

。* / 匹配 RTG /

(。+)匹配 LATCH 并将匹配标记为第1组

\ .. * 匹配 .PETROL_ABC

然后我们从匹配使用 \ 1

替换第1组的整个字符串

答案 1 :(得分:1)

使用SUBSTR()和INSTR(),

SELECT SUBSTR('RTG/LATCH.PETROL_ABC',
    INSTR('RTG/LATCH.PETROL_ABC', '/') + 1,
    INSTR('RTG/LATCH.PETROL_ABC', '.') - INSTR('RTG/LATCH.PETROL_ABC', '/') - 1)