2017-03-22 10 views
0

値のために、私はそうのような形のテーブルを持っている:条件文nullが

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

私は価値< Value_CompすべてのIDを選択したいのですが、NULL値があります場合は、データを選択します値> 5

このシナリオでは、ID 102, 103, and 104が選択されます。

編集:私には他にもたくさんの条件があります。これを書く簡単な方法はありますか?私はそれらを2回繰り返す必要はありませんか?

答えて

3

はこれを試してみてください:

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

あなたは括弧で2つの条件を配置し、where句で他の条件を追加することができます。

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

ありがとうございます!私は何度も何度も繰り返さないので、他の条件の束とこれを入れ子にする簡単な方法はありますか? – NBC

+0

@NBC - 答えを更新しました。それはあなたの質問に答えますか? – GurV

+0

はい、ありがとうございます! – NBC

1
SELECT ID 
FROM your_table 
WHERE Value < Value_Comp OR (Value_Comp IS NULL AND Value > 5) 
+0

ありがとう!私は何度も何度も繰り返さないので、他の条件の束とこれを入れ子にする簡単な方法はありますか? – NBC