【问题标题】:Conditional statement inside where clause to account for null valueswhere 子句中的条件语句来解释空值
【发布时间】:2017-03-23 02:54:06
【问题描述】:

我有一张这样的桌子:

ID  | Value  | Value_Comp
101 |  3     |   2
102 |  2     |   4 
103 |  7     |   NULL
104 |  1     |   4   

我想选择 Value 5 的数据

因此在这种情况下,将选择 ID 102, 103, and 104

编辑:我还有很多其他 where 条件。有没有一种简单的方法来写这个,所以我不必把它们都重复两次?

【问题讨论】:

    标签: sql


    【解决方案1】:

    试试这个:

    select *
    from t
    where (value_comp is null and value > 5)
        or value < value_comp;
    

    你可以把这两个条件放在括号里,然后在where子句中加入其他条件:

    select *
    from t
    where ((value_comp is null and value > 5) or value < value_comp)
         and <condition 1> and <condition 2> . . .;
    

    【讨论】:

    • 谢谢!有没有一种简单的方法可以将它与一堆其他 where 条件嵌套,这样我就不会重复所有内容了?
    • @NBC - 更新了答案。这能回答你的问题吗?
    【解决方案2】:
    SELECT ID
    FROM your_table
    WHERE Value < Value_Comp OR (Value_Comp IS NULL AND Value > 5)
    

    【讨论】:

    • 谢谢!有没有一种简单的方法可以将它与一堆其他 where 条件嵌套,这样我就不会重复所有内容了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2022-11-10
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多