对WHERE子句access sql中的指定数据进行排序
我的下表是使用VBA转换为access表的excel工作表数据。我在对EID7006或EID3456所在的数据进行排序,即对所有列数据进行排序,但不排序EID=7006或EID=3456。但有时,根据我转换的excel文件,EID=7006不会出现在表中 表1的EID=7006和EID=3456对WHERE子句access sql中的指定数据进行排序,sql,ms-access-2010,Sql,Ms Access 2010,我的下表是使用VBA转换为access表的excel工作表数据。我在对EID7006或EID3456所在的数据进行排序,即对所有列数据进行排序,但不排序EID=7006或EID=3456。但有时,根据我转换的excel文件,EID=7006不会出现在表中 表1的EID=7006和EID=3456 Description EID Basecode ----------- ---- --------- ssdad
Description EID Basecode
----------- ---- ---------
ssdad 3456 S2378797
gfd 1002 S1164478
gfdsffsdf 1003 R1165778
ssdad 3456 M0007867
gfd 1005 N7765111
gfdsffsdf 7006 W5464111
gfd 1005 N7765111
有时表1没有EID=7006
Description EID Basecode
----------- ---- ---------
ssdad 3456 S2378797
gfd 1002 S1164478
gfdsffsdf 1003 R1165778
ssdad 3456 M0007867
gfd 1005 N7765111
gfdsffsdf 88 W5464111
gfd 1005 N7765111
如果我在表1中指定忽略7006或3456的查询,因为我不知道EID=7006是否存在,我在查询中表示为
SELECT Description,EID,Basecode from table2 where EID<>7006 or EID<>3456
我仍然在结果查询中看到7006和3456 看起来您的问题正在使用或您的意思是
SELECT Description,EID,Basecode from table2 where EID<>7006 AND EID<>3456
看起来您的问题正在使用或您的意思是
SELECT Description,EID,Basecode from table2 where EID<>7006 AND EID<>3456
使用WHERE子句或在WHERE子句中使用WHERE子句是非常棘手的。在本例中,您的OR运算符的行为就像一个联合体。它的行为就像是你写的:
SELECT Description,EID,Basecode
from table2
where EID<>7006
union
SELECT Description,EID,Basecode
from table2
where EID<>3456
由于每个集合都包含来自另一个集合的EID值,因此您将继续看到要过滤掉的EID值
你需要做的是写:
从表2中选择描述、EID、基本代码,其中EID7006和EID3456
或者,您可以将其表述为如下所示,这将产生与使用逻辑AND运算符相同的结果:
从表2中选择Description、EID、Basecode,其中EID不在70063456中,使用where子句或在where子句中使用是非常棘手的。在本例中,您的OR运算符的行为就像一个联合体。它的行为就像是你写的:
SELECT Description,EID,Basecode
from table2
where EID<>7006
union
SELECT Description,EID,Basecode
from table2
where EID<>3456
由于每个集合都包含来自另一个集合的EID值,因此您将继续看到要过滤掉的EID值
你需要做的是写:
从表2中选择描述、EID、基本代码,其中EID7006和EID3456
或者,您可以将其表述为如下所示,这将产生与使用逻辑AND运算符相同的结果:
从表2中选择Description、EID、Basecode,其中EID不在70063456中
SELECT Description, EID, Basecode
FROM table2
WHERE EID NOT IN (7006, 3456)
稍微干净一点的查询是:
SELECT Description, EID, Basecode
FROM table2
WHERE EID NOT IN (7006, 3456)