我有一张像这样的桌子:
ID | Value | Value_Comp
101 | 3 | 2
102 | 2 | 4
103 | 7 | NULL
104 | 1 | 4
我想选择Value<的所有ID Value_Comp,但如果有NULL值,则选择数值if value> 5
因此,在这种情况下,将选择ID 102, 103, and 104
。
编辑:我有很多其他条件。有没有一种简单的方法来写这个,所以我不必重复所有这两次?
答案 0 :(得分:2)
试试这个:
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> . . .;
答案 1 :(得分:1)
SELECT ID
FROM your_table
WHERE Value < Value_Comp OR (Value_Comp IS NULL AND Value > 5)