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