用instr提取一些字符

时间:2015-05-04 09:40:55

标签: plsql

在pl / sql中

我有这些文字:

${cat};${dog};

我想提取这些:

${dog}

我尝试使用instr但总是向我显示最后一个分号:

SELECT substr(field,instr(field,'$',1,2),instr(field,';',1,2)-1),...

请帮助

2 个答案:

答案 0 :(得分:0)

该函数定义为substr(str, pos, len),因此您必须将第3个参数中的位置减去substr(str, pos1, pos2 - pos1)

答案 1 :(得分:0)

不确定它是否是您需要的,但我会编码:

select substr('${cat};${dog};'
             ,instr('${cat};${dog};',';',1,1)+1
             ,instr('${cat};${dog};',';',1,2)-instr('${cat};${dog};',';',1,1)-1
             )
  from dual;