在 MS Access 中的情况

Case when in MS Access

我正在尝试使用 IIF 和 Not IN 运算符来识别某些行,但出现语法错误。我想使用以下查询识别列的 none 包含 A1 和 A2 的行。我没有得到想要的结果。非常感谢任何帮助,并提前感谢您。

Table:(注:原table中最多有16个variables/Columns)

ID  KH1 KH2 KH3 KH4 KH5 KH6

001 A2  B1  C1  D1  E1  F1
002 F1  A1  B1  D1  E1  G1
003 A1  B1  D1  E1  
004 XX  XX  XX  XX  XX  XX
005 AA  AB  AC  A2  XX
006 XX  XX  XX  A1  
007 XX  XX  XX  XX  A1  XX
008 XX  XX  AE  XX  XX  AC

输出:

ID  KH1 KH2 KH3 KH4 KH5 KH6 Identified

001 A2  B1  C1  D1  E1  F1  No
002 F1  A1  B1  D1  E1  G1  No
003 XX  B1  D1  E1          Yes     
005 AA  AB  AC  A2  XX      Yes
006 XX  XX  XX  A1          No
007 XX  XX  XX  XX  A1  XX  No

我的查询

Select * from Table
IIF (((Nz([KH1],' ')) Not in ('A1', 'A2')) AND ((Nz([KH2],' ')) Not in ('A1', 'A2')) AND ((Nz([KH3],' ')) Not in ('A1', 'A2')) AND ((Nz([KH4],' ')) Not in ('A1', 'A2')) AND ((Nz([KH5],' ')) Not in ('A1', 'A2')) AND ((Nz([KH6],' ')) Not in ('A1', 'A2')));

尝试下面的查询

SELECT MyTable.*,  
IIf([KH1] In ('A1','A2'),"No",
IIf([KH2] In ('A1','A2'),"No",
IIf([KH3] In ('A1','A2'),"No",
IIf([KH4] In ('A1','A2'),"No",
IIf([KH5] In ('A1','A2'),"No",
IIf([KH6] In ('A1','A2'),"No","Yes")))))) AS Identified
FROM MyTable;

代码中的 IIF() 函数缺少 truepartelsepart:

SELECT *,
  IIF (    Nz([KH1], '') NOT IN ('A1', 'A2') 
       AND Nz([KH2], '') NOT IN ('A1', 'A2')
       AND Nz([KH3], '') NOT IN ('A1', 'A2')
       AND Nz([KH4], '') NOT IN ('A1', 'A2')
       AND Nz([KH5], '') NOT IN ('A1', 'A2')
       AND Nz([KH6], '') NOT IN ('A1', 'A2'),
       'Yes',
       'No'
  ) AS Identified
FROM tablename;

或者:

SELECT *,
  IIF (   Nz([KH1], '') IN ('A1', 'A2') 
       OR Nz([KH2], '') IN ('A1', 'A2')
       OR Nz([KH3], '') IN ('A1', 'A2')
       OR Nz([KH4], '') IN ('A1', 'A2')
       OR Nz([KH5], '') IN ('A1', 'A2')
       OR Nz([KH6], '') IN ('A1', 'A2'),
       'No',
       'Yes'
  ) AS Identified
FROM tablename;