我正在尝试向查询添加数字通配符以查找特定位置的数字。查询看起来像这样:
SELECT SUBMITTER
FROM BASE_ELEMENT
WHERE SUBMITTER LIKE 'm_%';
这个查询的问题在于它拾取以“m”开头并且在第二个位置有一个字符的所有内容。我需要像Unix通配符那样工作的东西:
'm[0-9]*'
我希望它包含m0,m1,m2等,但不包括ma,mb,mc等。
如何在Oracle 10g中完成此任务?
答案 0 :(得分:9)
在10G中,您拥有wonder regular expressions。所以,您的查询可能是:
select submitter
from base_element
where regexp_like(submitter, '^m[[:digit:]]')
^
将表达式锚定到行的开头,[[:digit:]]
匹配任何数字。
答案 1 :(得分:2)
尝试使用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]' );
答案 2 :(得分:1)
您可以使用regexp_like
:
where regexp_like(submitter, '^m\d')