2017-02-09 434 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