sql - 在一个字段中查找包含在另一个字段中的文本 Oracle SQL

标签 sql oracle text sql-like

如果有人问到这个问题,我深表歉意,我无法用语言表达。

我被要求过滤掉查询中的行,其中一个字段的文本包含在另一个字段中。一个例子可能会更好地解释它:

    Column_1         Column_2
    Low Static       Static
    Static           Static
    Static           Clear
                     Static
    Very Low Freq    Freq

查询结果应该只返回第 3 行和第 4 行,因为第 1、2 和 5 行包含相似的字符串。现在,我有以下条件:

    WHERE
    ((Column_2 NOT LIKE '%' || Column_1 || '%')
    OR (Column_1 NOT LIKE '%' || Column_2 || '%' OR Column_1 IS NULL))

但是,当我只想返回第 3 行和第 4 行时,它会返回第 1、3、4 和 5 行。这只是示例数据,我的实际数据集在第 1 列和第 2 列中包含许多不同的文本字符串,因此我可以不要只编写特定的 case 语句来排除列相似的某些实例。

也许这是不可能的,因为我无法将字符串定义为包含在 2 个空格内的内容,同时考虑没有空格的情况?

谢谢

最佳答案

对于你的表达,我认为你想要and而不是or:

WHERE ((Column_2 NOT LIKE '%' || Column_1 || '%') AND
       (Column_1 NOT LIKE '%' || Column_2 || '%' OR Column_1 IS NULL)
      )

您需要两个条件都为真。您可能会发现逻辑更容易遵循:

WHERE NOT (Column_2 LIKE '%' || Column_1 || '%' OR
           Column_1 LIKE '%' || Column_2 || '%'
          )

关于sql - 在一个字段中查找包含在另一个字段中的文本 Oracle SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24539720/

相关文章:

php - 基于 MySQL 查询中的 If Else 语句的自定义 CSS

c# - 此SqlTransaction已完成;它不再可用。 - 无法弄清楚出了什么问题

html - Ipad 上带有文本的 css 过渡

sql - 我想使用 union all 进行插入,其中有一列从序列中获取值

java - Oracle 序列可以为空吗?

Python:如何删除圆括号内的文本?

linux - 使用 Awk 比较两个文件

sql - SELECT 值排除来自其他 SELECT 的值

mysql - 在 HAVING 和 WHERE 子句之间使用 OR 运算符的 SQL 查询

sql - 数据库:流水线函数