在列中查找字母

时间:2012-10-17 12:43:17

标签: sql oracle

如何查询oracle以查找包含0-1000

数字的列

我尝试了类似的查询:

select (Column_name)  
from  (table_name) 
where regexp_like(CREDIT_BANK_BRANCH,'^[0-999]$');

2 个答案:

答案 0 :(得分:2)

使用此正则表达式:

^([0-9]{1,3}|1000)$

<强>解释

正则表达式无法计算数值表达式,因此您必须将所有内容视为字符,因此:

查找长度为1到3个字符的任意数字组:[0-9]{1,3}或仅数字1000。

管道意味着“或”和括号是必要的,以限制表达式的范围。

缩短版本:

^(\d{1,3}|1000)$

测试:

enter image description here

答案 1 :(得分:0)

如果只想返回包含该列中数字的行,请将正则表达式更改为^[0-9]+$(或更短^\d+$)。

如果您要查找包含非数字字符的记录,请使用[^0-9](或缩短\D)。

有关详细信息,请参阅Using Regular Expressions in Oracle Database