‘AAAA@14@BBBBBB’我要接却从第一个@到第二个@之间的数 请问有没有办法?

解决方案 »

  1.   

    select substr('AAAA@14@BBBBBB',
                  instr('AAAA@14@BBBBBB', '@', 1, 1) + 1,
                  instr('AAAA@14@BBBBBB', '@', 1, 2) -
                  instr('AAAA@14@BBBBBB', '@', 1, 1) - 1)
      from dual
      

  2.   

    create table tab2(
        t_id varchar2(20)
    );insert into tab2 values('AAAA@14@BBBBBB');select substr(
        t_id,
        (select instr(t_id,'@',1,1) from tab2)+1,
        ((select instr(t_id,'@',1,2) from tab2)-(select instr(t_id,'@',1,1) from tab2))-1) 
        from tab2;
      

  3.   

    ORACLE10G用正则表达式SELECT regexp_replace('AAAA@14@BBBBBB','([[:alnum:]]+)@([[:alnum:]]+)@([[:alnum:]]+)','\2') 
     FROM dual;