在“OR”具有优先级时合并条件(Visual Database Tools)

若要将条件与 OR 链接,并将它们优先于与 AND 链接的条件,必须针对每个 OR 条件重复 AND 条件。

例如,假设你想要找到所有在公司工作了五年多、工作级别较低的员工或退休员工。 此查询需要三个条件,其中一个条件与另外两个附加条件以“与”连接。

  • 雇佣日期早于五年前的员工。

  • 工作级别为 100 或其状态为“R”(已停用)的员工。

以下过程演示如何在“条件”窗格中创建这种类型的查询。

在 OR 运算符优先时合并条件

  1. 在“条件”窗格中,添加要搜索的数据列。 如果要使用与 AND 链接的两个或多个条件搜索同一列,则必须针对要搜索的每个值将数据列名称添加到网格中一次。

  2. 通过将第一个条件输入到 筛选器 网格列,并将第二个及后续条件分别输入到单独的 或者... 列中。 例如,若要将条件与搜索 job_lvlstatus 列的 OR 链接,请在 = 100 列中输入 job_lvl 并在 status 列。

    在网格中输入这些值后,将在 SQL 窗格中生成以下 WHERE 子句:

    WHERE (job_lvl = 100) OR (status = 'R')  
    
  3. 通过为每个 OR 条件输入一次 AND 条件来创建 AND 条件。 将每个条目放在与其对应的 OR 条件相同的网格列中。 例如,要添加一个 AND 条件,该条件需要在 hire_date 列进行搜索,并同时适用于两个 OR 条件,请在“条件”列以及“< '1/1/91' 列”中输入

    在网格中输入这些值后,将在 SQL 窗格中生成以下 WHERE 子句:

    WHERE (job_lvl = 100) AND   
      (hire_date < '01/01/91' ) OR  
      (status = 'R') AND   
      (hire_date < '01/01/91' )  
    

    小窍门

    可以通过先添加一次 AND 条件,然后使用 "剪切""粘贴" 命令,从 "编辑" 菜单中对其他 OR 条件重复此步骤。

查询和视图设计器创建的 WHERE 子句等效于以下 WHERE 子句,该子句使用括号指定 OR 优先于 AND:

WHERE (job_lvl = 100 OR status = 'R') AND  
   (hire_date < '01/01/91')  

注释

如果以 SQL 窗格中直接显示的格式输入搜索条件,但随后对关系图或条件窗格中的查询进行更改,查询和视图设计器会重新创建 SQL 语句,以将窗体与显式分发到这两个 OR 条件的 AND 条件匹配。

另请参阅

条件窗格中合并搜索条件的约定(Visual Database Tools)
指定搜索条件(Visual Database Tools)