0

我有一个像这样的查询

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

但是我需要根据另一个条件删除最后一个条件,例如

否则marks3 >40 then use marks2 <30删除此条件。

是否可以。

提前致谢....

4

2 回答 2

2

这很简单。您只需要使用“或”子句添加您的条件。

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

如果Marks3 <= 40,则外括号内的表达式被评估为True。其他条件是什么并不重要。
如果marks3 > 40,则marks2必须< 30才能使内括号内的表达式被评估为True,这使得完整的外括号被评估为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 回答