我正在努力学习我正试图在MS Access中编写的SQL语句,并希望得到任何帮助。
我有一张桌子:
***************************
* attr1 * attr2 * attr3 *
***************************
* * A * 1 *
* * B * 2 *
* * B * 3 *
* * C * 4 *
* B * * 1 *
* D * * 1 *
* A * * 2 *
***************************
我需要这样的结果:
***************************
* attr1 * attr2 * attr3 *
***************************
* B * * 1 *
* D * * 1 *
* A * * 2 *
* * B * 3 *
* * C * 4 *
***************************
因此,我在结果中需要attr1不为null的所有行,以及attr3与attr1不为null的行中的值不同的所有其他行。
我可以在Access中以一种方式进行查询,其中我选择attr1不为空的所有行,而不是一个“find unmatched”查询,其中我选择attr3中未包含在第一个查询中的值的所有行,而不是将这两个查询联合起来......但是我需要一些更直接的方法(如果可能的话,还需要一个sql语句)。
非常感谢!
答案 0 :(得分:2)
我想你可能需要这样的东西:
Select attr1, attr2, attr3
from table
where attr1 is not null
or attr3 not in (select attr3 from table where attr1 is not null)