ORACLE:使用正则表达式过滤字段中的数据

时间:2015-10-29 03:43:10

标签: sql regex oracle

我在Oracle中有一个表:

:

我想用以下查询选择第3行和第4行(仅包含字母),但我没有得到任何行。

id | name  | description

 1 | Roy   | 12
 2 | Boy   | 99
 3 | John  | NEW YORK
 4 | Brian | ALABAMA

如何更正查询以获取第3行和第4行?

1 个答案:

答案 0 :(得分:1)

SELECT * FROM my_table WHERE regexp_like( d, '^[a-zA-Z]+$')

根据评论更新:documentation is very good

   ^ - start of string
   $ - end of string
   [a-zA-Z] - character class containing latin letters only
   [0-9] - character class containing digits only
   \d - the same as [0-9]

例如:

^[a-zA-Z]+$匹配字符串仅限字母

^[a-zA-Z]匹配以字母和任何尾部开头的字符串

[a-zA-Z]匹配至少包含一个字母的字符串

数字相似

^\d+$仅匹配数字字符串(依此类推......)

^\d{2,6}$匹配字符串,如果它只包含数字,并且有2,3,4,5或6位数字。