Oracle SQL从含数字的字符串中,截取出非数字字符

Oracle 某库表字段的内容如:
A20110304ABCDE20120303
A20110331ABCD_E
A033XYZ
要求SQL语句实现从字段中截取出除首字符外的非数字字符,如:
ABCDEABCD_EXYZ
要求SQL语句实现从字段中截取出除首字符外的非数字字符,如
ABCDE
ABCD_E
XYZ

第1个回答  推荐于2016-07-21
如果字符都是在一起的那么还可以实现(用正则表达式,oracle有相关函数,因为不怎么常用所以只能给这点建议,写法真的记不住了)。
不过如果是A112344A2B3C4DDDDD13121, 那么就没办法了。其实也不是没办法,关键是办法太麻烦。本回答被提问者采纳
第2个回答  2019-05-08
select regexp_substr(T1.vc_report_code,'.*[a-zA-z]')
from tstockinfo T1
上面是例子,具体自己改一下

regexp_substr(T1.vc_report_code,'.*[a-zA-z]')
就是当前列中的字母字符串过滤出来!
第3个回答  2019-05-14
这个只能祭出强大的正则表达式了,字符的正a-z A-Z ,筛选的正则表达式为regexp_substr(字段,'.*[a-zA-z]')
第4个回答  2019-08-19

 select substr(regexp_REPLACE('A20110304ABCDE20120303', '[[:digit:]]',''),2) REGEXP_SUBSTR from dual;

 select substr(regexp_REPLACE('A20110331ABCD_E', '[[:digit:]]',''),2) REGEXP_SUBSTR from dual;

 select substr(regexp_REPLACE('A033XYZ', '[[:digit:]]',''),2) REGEXP_SUBSTR from dual;

请点击输入图片描述

第5个回答  2019-05-16
11111111
相似回答