如何避免使用子查询

How to avoid using a subquery

这里有一个示例 table :

A   |  B
----------
 DF   RUI
 EF   RUI
 AF   FRO
 EF   FRO

我想得到除 WHERE (A = 'EF' AND B = 'RUI') 之外的所有结果,如下所示:

  A   |  B
----------
 DF   RUI
 AF   FRO
 EF   FRO

但是是否可以在没有子查询的情况下执行此操作?

编辑:

我添加了一些额外的结果来显示我想要得到的结果。如果 A = EF 或 B = RUI 我想得到结果但是如果 A = EF AND B = RUI

我不想得到结果
SELECT A, B FROM table WHERE NOT (A = 'EF' AND B = 'RUI') 

SELECT A, B FROM table WHERE (A <> 'EF' OR B <> 'RUI') 

where 子句本质上是一个布尔表达式,因此您可以执行您习惯的任何类型的布尔转换(如果它涉及 NULL 值会稍微复杂一些,我认为这不会是您的示例;如果确实如此,您可能需要添加一些额外的规则或检查 SQLs terinary logic).

下的行为

如果我没听错的话。 . .

select * from your_table
where not (A = 'EF' and B = 'RUI');

只需在where子句前加一个NOT条件即可:

SELECT A,B FROM table_name
WHERE NOT (A = 'EF' AND B = 'RUI')
Select * from SAMPLETABLE where A <> 'EF' OR B <> 'RUI';
SELECT A, B FROM table WHERE (A = 'EF' XOR B = 'RUI')