【问题标题】:using % is IN condition [duplicate]使用 % 是 IN 条件 [重复]
【发布时间】:2013-07-23 11:32:50
【问题描述】:

通常当你必须在 oracle 中搜索一个你不知道我们使用的确切条件的 where 条件时:

Select * from Table where column like '%Val%'

如果我必须检查多个条件,我们使用IN

Select * from Table where column in ('Value1','ABC2')

我们如何将两者结合起来?即在不知道确切值的情况下在 DB 中搜索一堆值 下面的代码没有给出想要的结果,因为它把整个看作一个字符串。

Select * from Table where column in ('%Val%','%AB%')

【问题讨论】:

    标签: sql oracle plsql sql-in


    【解决方案1】:
    Select * from Table where column like  '%Val%' or column like '%AB%';
    

    【讨论】:

      【解决方案2】:
      Select * from Table where column like '%Val%' or column like '%AB%'.....
      

      我知道写起来有点难,你可以创建一个垂直列表并将 \n 和 \r 分别更改为 '% 和 %'。

      【讨论】:

        【解决方案3】:
        SELECT * FROM Table
        WHERE instr(column, 'Val', 1) > 0 or instr(column, 'AB', 1) > 0
        

        或:

        SELECT * FROM Table
        WHERE contains(column, 'Val', 1) > 0 or contains(column, 'AB', 1) > 0
        

        【讨论】:

        • CONTAINS 是 Oracle Text 运算符,仅适用于具有适当索引的列。
        猜你喜欢
        • 2011-10-05
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-03
        • 2014-12-17
        • 2013-03-30
        • 1970-01-01
        相关资源
        最近更新 更多