字段内容如图,想提取其中j后面跟着的数字和后面/j跟着的数字!求大佬指教!

解决方案 »

  1.   

    select regexp_replace('J123啊啊/J321啊啊啊', 'J(\d+).+J(\d+).+', '\1;\2') from dual
      

  2.   

    WITH
    T1 AS (
    SELECT 'J8一二三/J12' S FROM DUAL UNION ALL 
    SELECT 'J90九八七六五/J1' S FROM DUAL),
    T2 AS (SELECT T1.S,TRANSLATE(S,'J0123456789'||S,'J0123456789') SS FROM T1),
    T3 AS (SELECT S,SS,SUBSTR(SS,INSTR(SS,'J')+1,LENGTH(SS)-1) SSS FROM T2)
    SELECT T3.S,SUBSTR(SSS,1,INSTR(SSS,'J')-1) S1,SUBSTR(SSS,INSTR(SSS,'J')+1,LENGTH(SSS)) S2 FROM T3
      

  3.   

    select regexp_substr('a123bvf','[0-9]+') from dual,只能截取连续的数字;
    select regexp_replace('a123bvf45c','[^0-9]+') from dual  剔除所有的非数字;
    行的话给分哦