像命令SQL一样

时间:2012-07-30 13:19:08

标签: sql oracle oracle-sqldeveloper sql-like

我正在尝试构建一个查找多个不同内容的SQL查询,我认为类似命令是实现此目的的最佳方法

查询中的行是:

where *field* like 'AB%'它列出了表格中开始AB的所有实例....

当我尝试添加多个实例但我收到错误消息时,我想做类似以下的事情:

where *field* like ('AB%','CD%','EF%')

因此,我获取了以我提供的文本列表开头的特定条目的字段

有人可以帮帮我吗?

5 个答案:

答案 0 :(得分:5)

您想要OR

WHERE field LIKE 'AB%' 
   OR field LIKE 'CD%'
   OR field LIKE 'EF%'

如果您使用其他WHERE条款标准,则需要使用括号括起OR子句。

希望它有所帮助...

编辑:

发表评论后,您可以尝试在WHERE条款中使用regular expressions,尤其是REGEXP_LIKE

(未经测试)的某些内容:

SELECT *
  FROM table
 WHERE regexp_like(field, '^(AB|CD|EF).*$')

答案 1 :(得分:1)

WHERE *field* LIKE 'AB%' OR *field* LIKE 'CD%' OR *field* LIKE 'EF%'

答案 2 :(得分:0)

如果您使用的是Oracle,可以写:

where regexp_like(t1, '^AB|^CD|^EF')

答案 3 :(得分:0)

您可以使用instr功能。如果它在字符串的第一个位置找到你想要的子字符串,它将返回1:

where instr(field,'AB') = 1
OR instr(field,'CD') = 1
OR instr(field,'ED') = 1

答案 4 :(得分:-1)

如果您想使用单个字符串,请尝试使用REGEXP:

WHERE *field* REGEXP 'AB(.*)|CD(.*)|EF(.*)'