SELECT substr('012345',REGEXP_INSTR('012345', '[1-9]')) FROM DUAL;

解决方案 »

  1.   


    WITH ta AS 
    (SELECT '123456' A FROM dual UNION ALL
    SELECT '012345' A FROM dual UNION ALL
    SELECT '001234' A FROM dual UNION ALL
    SELECT '0A1234' A FROM dual
    )
    SELECT regexp_replace(a,'^(0|[[:alpha:]])*','') FROM ta
      

  2.   

    SELECT REGEXP_SUBSTR('0A1234', '[1-9]+') FROM DUAL;
      

  3.   

    如果需要保留后面的0,使用下面的sql
    SELECT REGEXP_SUBSTR('001234', '[1-9][[:digit:]]+') FROM DUAL;
      

  4.   

    这个直接用系统的ltrim函数就好了,楼上的正则也可以
     SELECT ltrim('000000120034','0') FROM DUAL;
      

  5.   

    不好意思没注意有字母
     SELECT REGEXP_SUBSTR('0A123004000JJJ', '[1-9][[:digit:]]+') FROM DUAL;