我試圖將數字通配符添加到查詢以查找特定位置中的數字。查詢看起來是這樣的:號碼通配符在哪裏條款
SELECT SUBMITTER
FROM BASE_ELEMENT
WHERE SUBMITTER LIKE 'm_%';
與此查詢的問題是,它拿起,與「M」開頭,並且在第二位置的字符一切。我需要工作,像Unix通配符的東西:
'm[0-9]*'
我希望它包括M0,M1,M2等,但不包括MA,MB,MC等
我怎麼會在完成這Oracle 10g?
我試圖將數字通配符添加到查詢以查找特定位置中的數字。查詢看起來是這樣的:號碼通配符在哪裏條款
SELECT SUBMITTER
FROM BASE_ELEMENT
WHERE SUBMITTER LIKE 'm_%';
與此查詢的問題是,它拿起,與「M」開頭,並且在第二位置的字符一切。我需要工作,像Unix通配符的東西:
'm[0-9]*'
我希望它包括M0,M1,M2等,但不包括MA,MB,MC等
我怎麼會在完成這Oracle 10g?
在10G你有regular expressions的wonder。所以,您的查詢可能是:
select submitter
from base_element
where regexp_like(submitter, '^m[[:digit:]]')
^
錨表達對線的起點和[[:digit:]]
匹配任何數字。
你可以使用regexp_like
:
where regexp_like(submitter, '^m\d')
嘗試使用REGEXP_LIKE功能(http://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm)。
你的情況下就可以解決這樣的:
select submitter from base_element where regexp_like(submitter, '^m[0-9]');
感謝您的參考。我不知道「regexp_like」的功能。這解決了我的問題。 – jmq 2012-02-23 19:46:09
沒問題@jmquigley;我唯一的建議是不要依賴正則表達式,如果你能避免它。他們可以非常容易地大規模地過度複雜,儘管他們對於這樣的情況是完美的。 – Ben 2012-02-23 20:26:02