访问SQL条件查询

时间:2014-04-14 21:13:39

标签: sql ms-access

我试图根据一列的内容检索数据。

样本表

  Description    EID        Basecode        
   -----------    ----       ---------    
  ssdad          1001       S2378797     
  gfd            1002       S1164478     
  gfdsffsdf      1003       R1165778     
  ssdad          1004       M0007867     
  gfd            1005       N7765111     
  gfdsffsdf      1006       W5464111     
  gfd            1005       N7765111     
  gfdsffsdf      1006       A4000011 
  gfdsffsdf      1006       W5464111     
  ssdad          1001       2378797     
  gfd            1002       1164478  
  ssdad          1001       965000
  gfd            1002       780000
  yjgk           4456       540000
  kjhkh          2009       150000
  ddd            1004       1040
  d88jg          1004       14C676
   fsa           6565       158 
   fdh           1004       2Khlm
   ggdg          2009       967

如果列数据以字母开头,那么我想要qr1的结果;如果它包含的数字以 96 78 54 ,长度> 6开头,那么我会得到qry2结果。

如何检索qry1,qry2中排序以外的数据?

如何在MS-Access中有条件地执行此操作?

2 个答案:

答案 0 :(得分:0)

你必须做基本上看起来像这样的IIF语句......

ColValue: IIf((Len([col1])>6 And (Left([col1],2)="12" Or Left([col1],2)="13")),1,0)

ColValue: IIf(Left([col1],1) In ("a","b","c"),1,0)

(注意:一直添加到z)

然后,如果他们符合您的标准,则为1,否则为0。

答案 1 :(得分:0)

如果它不满足这两个条件中的任何一个怎么办?我将返回NULL,但您将其更改为您想要的内容:

SELECT IIF((LEN([col1])>6 AND (LEFT([col1], 2) = "12" OR LEFT([col1], 2)="13")), qry2,
       IIF(ASC(UCASE(LEFT([col1], 1))) BETWEEN 65 AND 90, qry1, NULL))
FROM myTable