2010-03-03 2 views
2

어쩌면 약간 이상하게 들릴 수도 있지만, 영숫자 필드에서 문자 만 검색하는 쿼리가 필요합니다. 예를 들어Oracle Query - 선택 필드에서 문자열 만 가져 오기

: OPAAC


을 ADD 예상 된


1234ADD
3901AC
1812OPA
82711AUU

결과 AUU

고맙습니다!

+0

'그에 대한 예상 결과가 무엇 ABC123EFG' :

및 일반 페이지에서

? – Nate

+0

사용중인 Oracle 버전은 무엇입니까? –

+0

결코 일어나지 않을 우리 시스템의 구성에 따르면. 문자열은 항상 끝에있게됩니다. 문자열의 길이를 어떻게 식별 할 수 없습니까? – danboh

답변

4

숫자 만 제거하려는 것처럼 보입니다. 당신은 10g 또는 11g에 그에 대한 REGEXP_REPLACE를 사용할 수 있습니다

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

을 시도해보십시오

SELECT ('1234ADD 3901AC 1812OPA 82711AUU', 'A1234567890', 'A') 듀얼로부터 번역; http://www.psoug.org/reference/translate_replace.html 같은 뭔가를 어떻게됩니까

+0

오라클 버전 일 가능성이 있습니까? – danboh

+0

나는 이것을 약간 썼지 만 그것을 테스트하기에 편리한 Oracle 인스턴스가 없다. 미안하다. 이것이 링크를 추가 한 이유입니다 ... –

+1

이 수정되었습니다. TRANSLATE의 세 번째 매개 변수가 NULL이면 항상 NULL을 반환합니다. –