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

适用于:SQL Server

若要链接条件并将其OR优先于与之AND链接的条件,必须对每个OR条件重复条件AND

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

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

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

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

在 OR 优先时合并条件

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

  2. 通过将第一个条件输入筛选器网格列,将第二个条件(以及后续条件)输入到单独的 Or... 列中,来创建与之链接OR的条件。 例如,若要将条件与OR搜索job_lvlstatus列链接,= 100请在“筛选”列中job_lvl= 'R'输入,在 Or... 列中输入 。status

    在网格中输入这些值在 SQL 窗格中的语句中生成以下 WHERE 子句:

    WHERE (job_lvl = 100) OR (status = 'R')
    
  3. AND通过为每个OR条件输入一次条件来创建条件。 将每个条目放在与其对应的条件相同的网格列中 OR 。 例如,若要添加搜索hire_date列并应用于这两ORAND条件的条件,请在“条件”列和“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子句,该子句使用括号指定优先AND顺序OR

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

注意

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