SQL提取字段问题

时间:2012-01-05 09:15:28

标签: sql oracle plsql

我有一个A列,其中包含4个以'/'

分隔的字段
example:  234-12-343/653423/MANAGER/yg@gmail.com

想知道如何提取字段索引2?所以最终的输出将是653423。

(我的想法是使用正则表达式,但不知道该怎么做)

*数据库是Oracle 10g

我能够提出这些问题。谢谢你的帮助

select substr(ColumnA',
          regexp_instr(ColumnA,'[\/]',1,1,0) + 1,
          regexp_instr(ColumnA,'[\/]',1,2,0) - regexp_instr(ColumnA,1,1,0) - 1  ) 
          as test from dual

1 个答案:

答案 0 :(得分:6)

substr(column_a, instr(column_a,'/',1,1) + 1, instr(column_a,'/',1,2) - instr(column_a,'/',1,1) - 1)

instr(column_a,'/',1,1)搜索/的第一次出现 instr(column_a,'/',1,2)搜索/

的第二次出现

substr然后提取两个位置之间的所有内容