【问题标题】:How to use column value in sql comparison condition如何在sql比较条件中使用列值
【发布时间】:2015-10-05 01:04:42
【问题描述】:

我需要查询某个基于列中比较值的数据。 考虑下表。

Order_Number    File_Name
123             100-200-123.pdf
234             200-300-234.pdf
345             500-600-556.pdf

现在我想选择 Order_Number,其中 Order_Number 不是 File_Name 的一部分。我想在 Oracle DB 中运行查询。

我试过了。

select Order_Number from table_name where File_Name not like '%&&Order_Number%'

显然它不起作用,并给出了一个对话框,用于在 sql developer 中输入 order_number 的值。

简而言之,我的查询应该只返回 345。任何帮助将不胜感激。

【问题讨论】:

  • I want to select Order_Number where Order_Number is part of File_Name。您的意思是“Order_Number 不是 File_Name 的 部分”吗?我问,因为您期望输出为 345。
  • 是的,我更正了谢谢。

标签: sql oracle


【解决方案1】:

你可以使用:

SELECT Order_Number 
FROM tableA 
WHERE File_Name NOT LIKE '%' || Order_Number || '%';

在此您将查看每一行 Order_Number 中的值。你看看File_Name 中是否存在该值。通过在其前后使用%,您可以在其前后使用其他值。

例如,如果您使用WHERE File_Name NOT LIKE Order_Number || '%',那么您将只查看以Order_Number 开头的File_Names

【讨论】:

    【解决方案2】:

    你可以这样做:

    select Order_Number from table_name where File_Name not like '%' || order_number || '%'
    

    SQLFiddle Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多