【问题标题】:How to filter similar column values如何过滤相似的列值
【发布时间】:2021-03-08 13:54:43
【问题描述】:

我需要帮助从一个名为 TEST 的 Oracle 表中提取数据,该表包含以下数据:

Name      Description
Alex      IExpenses   
Mary      IExpenses Setup and Admin
John      IExpenses   
Brett     Internet Expenses Auditor
Todd      Internet Expenses Setup and Admin
Jane      Internet Expenses Auditor

因此,我只需要选择描述结果不返回 iExpenses(但包含 iExpenses Setup 和 Admin 的任何内容)且不返回 Internet Expenses Auditor(但包含 Internet Expenses Setup 和 Admin 的任何内容)的条件的数据。

如何创造这个条件?

【问题讨论】:

  • 根据这个输入,期望的结果是什么?
  • 我会尝试使用 REGEXP_LIKE,我可以看到它会成功

标签: sql oracle sql-like


【解决方案1】:

如果您只需要返回类似于这两种情况的结果,请使用

Description LIKE '%Expenses Setup and Admin'

对于WHERE条件

如果区分大小写很重要,请使用

REGEXP_LIKE(Description,'Expenses Setup and Admin','i') 
   

如果严格来说应该是那些标识符,那么使用IN 运算符

Description IN ('Internet Expenses Setup and Admin','IExpenses Setup and Admin')

此外,如果再次区分大小写,请使用REGEXP_LIKE()i 选项以及管道运算符,例如

REGEXP_LIKE(Description,'Internet Expenses Setup and Admin|IExpenses Setup and Admin','i') 

顺便说一句,通过使用上述选项已经满足的豁免条件无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多