2012-02-23 2 views
1

특정 위치의 숫자를 찾기 위해 숫자 와일드 카드를 쿼리에 추가하려고합니다.Number 절의 와일드 카드

SELECT SUBMITTER 
    FROM BASE_ELEMENT 
WHERE SUBMITTER LIKE 'm_%'; 

이 쿼리의 문제는 그것이 "M"로 시작하고 두 번째 위치에 문자를 모든 것을 집어 들고 있다는 것입니다 : 쿼리는 다음과 같이 보인다.

가 어떻게이 작업을 수행 할

'm[0-9]*' 

내가 그것을 등 MA, MB, MC를, M0 M1, M2 등을 포함하지만 제외 할 : 나는 유닉스 와일드 카드처럼 작동 뭔가가 필요 오라클 10g?

답변

9

당신은 regular expressionswonder 있습니다. 그래서, 당신의 쿼리 수 :

select submitter 
    from base_element 
where regexp_like(submitter, '^m[[:digit:]]') 

^ 고정 장치 라인의 시작과 어떤 자리에 [[:digit:]] 일치로 표현.

+0

감사합니다. 나는 함수 "regexp_like"를 몰랐다. 그게 내 문제를 해결해 줬어. – jmq

+0

문제가 없습니다. @jmquigley; 내 유일한 조언은 당신이 그것을 피할 수 있다면 정규 표현식에 의존하지 않는 것입니다. 그들은 이런 상황에 완벽하지만 극단적으로 복잡한 작업을 대량으로 처리 할 수 ​​있습니다. – Ben

1

당신은 regexp_like을 사용할 수 10G에서

where regexp_like(submitter, '^m\d') 
2

REGEXP_LIKE 함수 (http://docs.oracle.com/cd/B19251/appdev.102/b14251/adfns_regexp.htm)를 사용해보십시오.

귀하의 경우

는 다음과 같이 해결할 수 : 참조에 대한

select submitter from base_element where regexp_like(submitter, '^m[0-9]');