0

私は次のようなクエリを持っています

 select * from table1 where id >20 and marks1 <40 and marks2 <30;

しかし、たとえば、別の条件に基づいて最後の条件を削除する必要があります

そうmarks3 >40 then use marks2 <30でない場合は、この条件を削除します。

出来ますか。

前もって感謝します....

4

2 に答える 2

2

とてもシンプルです。「or」句を使用して条件を追加するだけです。

select * from table1 where id >20 and marks1 < 40 and (marks3 <= 40 or (marks3 > 40 and marks2 <30));

mark3 <= 40の場合、外側の括弧内の式はTrueと評価されます。それ以外の条件は問いません。mark3 > 40
の 場合、内側の括弧内の式がTrueとして評価されるには、marks2< 30である必要があります。これにより、完全な外側の括弧がTrueとして評価されます。

于 2013-03-16T09:42:00.673 に答える
1

これを試して。

select * 
from   table1 
where  id > 20 and 
       marks1 < 40 and 
       (
           (marks3 >40 and marks2 <30) or 
           mark3 <= 40
       )
于 2013-03-16T09:46:33.133 に答える