2017-02-09 64 views
2

我想单独提取字母字符。
对于为 “NIC132DA.1” 示例输出应为 “NIC” 和 “DA” 单独没有任何数字。
我尝试以下查询:
Oracle从字符串中提取字母字符

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

我获得以下的输出:NICDA
进出料放是 “NIC” 和 “DA” 分开。
注意:输入字符串中的字符数不固定。

+0

是单独的列,在我的查询我想只有一个 – imsome1

+0

预期的结果是“NIC DA“? –

回答

4

您可以使用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; 
+0

非常感谢它的工作原理,我也尝试了更多的字母字符。 – imsome1