【问题标题】:Oracle sql command for selecting more than one value in like [duplicate]用于在类似 [重复] 中选择多个值的 Oracle sql 命令
【发布时间】:2016-12-08 06:04:12
【问题描述】:

我正在处理 Oracle 中的一个查询,其中我需要在 like 子句中输入多个参数。它可以是:

Select id from  student where name like 'Tom'
union
Select id from  student where name like 'Amy'
union
Select id from  student where name like 'Jany'

这将产生更多的查询,我想要一些查询,例如 ...

Select id from  student where name like ('Tom','Amy','Jany')

在 Oracle11g 或类似的查询中是否可以

【问题讨论】:

  • 如果您不使用通配符 (%, _),则使用“like”运算符毫无意义。只需使用“=”或“in”:name in ('Tom','Amy','Jany')
  • 没有像like any (...) 这样的直接可能,但是基于exists 和类似表达式的连接有非常相似的解决方案,请参阅我在链接问题下的答案。 (您还可以在 AskTom 上查看 Sokrates 的解决方案。)

标签: oracle oracle11g


【解决方案1】:

Oracle REGEXP_LIKE 在这里工作

REGEXP_LIKE

Select id from  student where REGEXP_LIKE(name,'(Tom|Amy|Jany)')

【讨论】:

    【解决方案2】:

    我们不能将IN 用于LIKE 条件。

    简单的方法是使用OR,但编写代码相当耗时。

    SQL>select id from student where name like '%Tom%' or name like '%Amy%' or name like '%Janny%';
    

    参考:AskTom:Like Operator with IN clause

    【讨论】:

    • 我得到了一个新答案,我正在分享它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2016-01-02
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多