如何避免使用子查询

时间:2015-02-14 19:27:23

标签: sql subquery where

这是一个示例表:

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

我想得到除WHERE(A ='EF'和B ='RUI')之外的所有结果:

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

但是没有子查询可以做到这一点吗?

编辑:

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

我不想得到结果

5 个答案:

答案 0 :(得分:1)

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下的行为。

答案 1 :(得分:1)

如果我理解正确的话。 。

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

答案 2 :(得分:1)

只需在where子句:

前添加NOT条件
SELECT A,B FROM table_name
WHERE NOT (A = 'EF' AND B = 'RUI')

答案 3 :(得分:0)

Select * from SAMPLETABLE where A <> 'EF' OR B <> 'RUI';

答案 4 :(得分:0)

SELECT A, B FROM table WHERE (A = 'EF' XOR B = 'RUI')