2010-03-03 6 views
2

Может быть, это звучит немного сумасшедшим, но мне нужно придумать запрос для извлечения только букв из буквенно-цифрового поля.Oracle Query - Получить только строки в поле выбора

Например:

ТАБЛИЦА
1234ADD
3901AC
1812OPA
82711AUU

ОЖИДАЕМЫЕ РЕЗУЛЬТАТЫ
ADD
AC
OPA
AUU

Спасибо!

+0

Что происходит что-то вроде 'ABC123EFG', что является ожидаемым результатом для этого? – Nate

+0

Какую версию Oracle вы используете? –

+0

В соответствии с конфигурацией нашей системы, которая никогда не произойдет. Строка всегда будет в конце, так как длина строки не может быть идентифицирована. – danboh

ответ

4

Похоже, вы хотите удалить номера. Вы можете использовать REGEXP_REPLACE для этого в 10g или 11g:

SELECT REGEXP_REPLACE(your_column, '[0-9]*', '') FROM your_table; 
+0

Спасибо, Питер, отлично работал! – danboh

2
SELECT REGEXP_REPLACE('1234ADD 3901AC 1812OPA 82711AUU', '[0-9]', '') 
FROM dual 
2

Попробуйте

ВЫБРАТЬ ПЕРЕВЕСТИ ('1234ADD 3901AC 1812OPA 82711AUU', 'A1234567890', 'A') FROM DUAL;

и вообще Престола: http://www.psoug.org/reference/translate_replace.html

+0

Не работает, может быть, из-за версии Oracle? – danboh

+0

Я написал это немного поспешно и не имею экземпляр Oracle, способный протестировать его, извините. Вот почему я добавил ссылку ... –

+1

исправлено. Если третий параметр TRANSLATE равен NULL, он всегда возвращает NULL. –