如何在sql比较条件中使用列值

时间:2015-07-15 19:49:53

标签: sql oracle

我需要根据比较列中的值来查询某个数据。 请参考下表。

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.任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

你可以这样做:

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

SQLFiddle Demo

答案 1 :(得分:1)

您可以使用:

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

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

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