如何:OR 优先时组合条件

若要用 OR 链接条件,并使其优先级高于用 AND 链接的条件,则必须为每个 OR 条件重复 AND 条件。

例如,假设要查找在该公司工作五年以上、低级职位或已退休的所有雇员。 此查询需要三个条件,一个条件由 AND 链接到另外两个条件:

  • 雇佣日期是在五年前的雇员,而且

  • 职位等级为 100 或其状态为“R”(表示已退休)的雇员。

下列过程说明如何在“条件”窗格中创建此类查询。

备注

以下说明中的某些 Visual Studio 用户界面元素在您计算机上的名称或显示位置可能有所不同。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关详细信息,请参阅 Visual Studio 设置

OR 优先时组合条件

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

  2. 创建将由 OR 链接的条件,方法是将第一个条件输入**“筛选器”网格列,然后将第二个(和后续条件)输入单独的“或...”列中。 例如,要用 OR 链接搜索 job_lvl 和 status 列的条件,请在“筛选器”列中为 job_lvl 输入 = 100,在“或...”**列中为 status 输入 = 'R'。

    如果在网格中输入这些值,就会在“SQL”窗格的语句中生成以下 WHERE 子句:

    WHERE (job_lvl = 100) OR (status = 'R')
    
  3. 通过为每个 OR 条件输入一次 AND 条件来创建 AND 条件。 将每个项放在它所对应的 OR 条件所在的同一网格列中。 例如,要添加搜索 hire_date 列并应用于两个 OR 条件的 AND 条件,请在“条件”列和**“或...”**列中均输入 < '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 条件重复此操作来重复 AND 条件。

由查询和视图设计器创建的 WHERE 子句相当于下列 WHERE 子句,其中使用括号指定 OR 优先于 AND:

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

备注

如果以上面显示的格式在“SQL”窗格中输入搜索条件,然后在“关系图”或“条件”窗格中对该查询进行更改,则查询和视图设计器将重新创建 SQL 语句,以使形式与显示分布到两个 OR 条件的 AND 条件相匹配。

请参见

参考

比较运算符 (Visual Database Tools)

概念

在“条件”窗格中组合搜索条件的约定

其他资源

指定搜索条件