Oracle从字符串中提取字母字符

时间:2017-02-09 09:28:07

标签: sql oracle oracle11g

我想分别只提取字母字符。
例如输出" NIC132DA.1 "应该是" NIC "和" DA "单独没有任何数字。
我尝试了以下查询:

select regexp_replace('NIC132DA.1','[^A-Za-z]') from dual;

我得到以下输出: NICDA
预期出局是" NIC"和" DA"分别。
注意:输入字符串中的字母数字不固定。

1 个答案:

答案 0 :(得分:5)

您可以使用REGEXP_SUBSTR

select 
    regexp_substr('NIC132DA.1','[A-Za-z]+', 1, 1) first,
    regexp_substr('NIC132DA.1','[A-Za-z]+', 1, 2) second
from dual;

最好使用多语言角色类[:alpha:]

select 
    regexp_substr('NIC132DA.1','[[:alpha:]]+', 1, 1) first,
    regexp_substr('NIC132DA.1','[[:alpha:]]+', 1, 2) second
from dual;