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
SELECT REGEXP_SUBSTR('0A1234', '[1-9]+') FROM DUAL;
如果需要保留后面的0,使用下面的sql SELECT REGEXP_SUBSTR('001234', '[1-9][[:digit:]]+') FROM DUAL;
这个直接用系统的ltrim函数就好了,楼上的正则也可以 SELECT ltrim('000000120034','0') FROM DUAL;
不好意思没注意有字母 SELECT REGEXP_SUBSTR('0A123004000JJJ', '[1-9][[:digit:]]+') FROM DUAL;
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
SELECT REGEXP_SUBSTR('001234', '[1-9][[:digit:]]+') FROM DUAL;
SELECT ltrim('000000120034','0') FROM DUAL;
SELECT REGEXP_SUBSTR('0A123004000JJJ', '[1-9][[:digit:]]+') FROM DUAL;