Access 合并搜索条件的规则和网格窗格约定

2024-06-22 11:29:15阅读量:37 字体:

可以创建包含任意数量搜索条件的查询,这些条件用任意数量的 AND 和 OR 运算符相链接。组合了 AND 和 OR 子句的查询会很复杂,所以有必要了解在执行这种查询时查询被解释的方式,以及这种查询在“网格”和 SQL 窗格中是如何表示的。

为便于理解下面的讨论,假设正在处理包含有hire_date、job_lvl和status列的employee表。该示例假定用户需了解诸如某雇员在公司里工作了多久(也就是了解该雇员的雇佣日期)、该雇员从事何种工作(也就是岗位级别)以及该雇员的状态(例如,是否退休)等信息。

AND 和 OR 运算符的优先级

当执行一个查询时,它会首先计算用 AND 运算符链接的子句,然后计算用 OR 运算符链接的子句。

注释NOT 运算符的优先级比 AND 和 OR 都高。

例如,为了找出在低级岗位上为公司工作了五年以上的雇员以及不论工作年限长短在中级岗位上的雇员,可以构建如下 WHERE 子句:

WHERE hire_date < ’01/01/90’ AND job_lvl = 100 OR job_lvl = 200
若要覆盖默认的 AND 比 OR 优先级高的约定,可以在 SQL 窗格中将特定条件两边加上括号。括号中的条件总是先计算。例如,为了找出在低级或中级岗位为公司工作了五年以上的所有雇员,可以构建如下 WHERE 子句:

WHERE hire_date < ’01/01/90’ AND(job_lvl = 100 OR job_lvl = 200)
提示

为使优先级结构清楚,建议在组合使用 AND 和 OR 子句时总是使用括号,而不要依赖于默认的优先级。

AND 子句与多个 OR 子句一起使用的方式

理解 AND 和 OR 子句的组合方式,有助于在“查询设计器”中构建和理解复杂的查询。

如果用 AND 链接了多个条件,则与 AND 链接的第一组条件会应用于第二组中的所有条件上。换句话说,用 AND 链接到另一个条件的条件,会分配给第二组中的所有条件。例如,下列示意的表达方式显示了一个链接到一组 OR 条件的 AND 条件:

A AND (B OR C)
上述表达方式与下列示意的表达方式在逻辑上等价,而下面的表达式显示了 AND 条件是如何分配给第二组中的条件的:

(A AND B) OR (A AND C)
这种分配原则影响“查询设计器”的使用方式。例如,假设要查找所有在低级或中级岗位为公司工作了五年以上的雇员。您可以在 SQL 窗格的语句中输入如下 WHERE 子句:

WHERE (hire_date < ’01/01/90’ ) AND (job_lvl = 100 OR job_lvl = 200)
用 AND 运算符链接的子句应用于使用 OR 运算符链接的两个子句。更清楚的等价表达方式是对 OR 子句中的每个条件均重复 AND 条件。下面的语句比上一语句逻辑关系更清楚(也更长),但是逻辑上是等价的:

WHERE (hire_date < ’01/01/90’ ) AND (job_lvl = 100) OR (hire_date < ’01/01/90’ ) AND (job_lvl = 200)
将 AND 子句分配给链接的所有 OR 子句的分配原则,适用于牵涉到的任意多单一条件。例如,假设想找出所有在高级或中级岗位为公司工作了五年以上或已退休的雇员。WHERE 子句可能如下所示:

WHERE (job_lvl = 200 OR job_lvl = 300) AND (hire_date < ’01/01/90’ ) OR (status = ’R’)
分配了用 AND 链接的条件之后,WHERE 子句可能如下所示:

WHERE (job_lvl = 200 AND hire_date < ’01/01/90’ ) OR (job_lvl = 200 AND status = ’R’) OR (job_lvl = 300 AND hire_date < ’01/01/90’ ) OR (job_lvl = 300 AND status = ’R’)
在“网格”窗格中如何表示多个 AND 和 OR 子句

“查询设计器”在“网格”窗格中表达搜索条件。但是,对于包含用 AND 和 OR 链接的多个子句的条件,“网格”窗格中的表达方式可能与预想的不一样。另外,如果在“网格”或“图表”窗格中修改查询,则会发现 SQL 语句与所输入的会有所不同。

下面是 AND 和 OR 子句在“网格”窗格中显示的一般规则:

用 AND 链接的所有条件都显示在“准则”网格列中,或显示在同一“或?…”列中。
用 OR 链接的所有条件会分开显示在不同的“或?…”列中。
如果 AND 和 OR 子句的组合逻辑结果是将 AND 条件分配给几个 OR 子句,则“网格”窗格会重复必要数量的 AND 子句,以清楚地表达组合结果。
例如,在 SQL 窗格中可能创建如下的搜索条件,其中用 AND 链接的两个子句优先于用 OR 链接的第三个子句:

WHERE (hire_date < ’01/01/90’ )AND (job_lvl = 100)OR (status = ’R’)
“查询设计器”在“网格”窗格中将这个 WHERE 子句表达如下:

 

但是,如果链接的 OR 子句具有比 AND 子句高的优先级,则对每个 OR 子句都会重复这个 AND 子句。这样,这个 AND 子句会分配给每个 OR 子句。例如,在 SQL 窗格中,可能创建如下 WHERE 子句:

WHERE (hire_date < ’01/01/90’ )AND ( (job_lvl = 100)OR (status = ’R’) )
“查询设计器”在“网格”窗格中将这个 WHERE 子句表达如下:

 

如果链接的 OR 子句只涉及一个数据列,则“查询设计器”会将整个 OR 子句放在该网格的单个单元格中,从而避免重复使用 AND 子句。例如,在 SQL 窗格中,可能创建如下 WHERE 子句:

WHERE (hire_date < ’01/01/90’ )AND ((status = ’R’)OR(status = ’A’))
“查询设计器”在“网格”窗格中将这个 WHERE 子句表达如下:

 

如果更改了查询(例如,在“网格”窗格中更改了一个值),“查询设计器”会在 SQL 窗格中重新创建这个 SQL 语句。重新创建的 SQL 语句会类似于“网格”窗格的显示,而与原来的语句有所不同。例如,如果“网格”窗格中包含要分配的 AND 子句,则 SQL 窗格中的生成语句会用明确分配的 AND 子句重新创建。
 

以上就是Access 合并搜索条件的规则和网格窗格约定的全部内容,望能这篇Access 合并搜索条件的规则和网格窗格约定可以帮助您解决问题,能够解决大家的实际问题是谜爱阁生活网一直努力的方向和目标。

推荐阅读

  • 荣耀x30如何升级鸿蒙系统

    荣耀x30如何升级鸿蒙系统

    荣耀x30手机升级鸿蒙系统需要去手机的设置内进行手动点击升级,系统会自动进行检测,具体的操作步骤如下: 荣耀x30如何升级鸿蒙系统 1、打开手机的设置,点击系统和更新”按钮,进入系统设置中...

    阅读: 843

  • 手机淘宝首页布局怎么变了

    手机淘宝首页布局怎么变了

    手机淘宝首页布局变了可能是开启了长辈模式,开启长辈模式的布局就会改变,可以通过设置改回原来的布局,具体操作步骤如下: 手机淘宝首页布局怎么变了 1、打开淘宝app,点击我的淘宝,再点击右上角的齿轮进入...

    阅读: 797

  • 强制解除小红书实名认证

    强制解除小红书实名认证

    小红书账号一旦实名认证过了就不能解除实名认证了,只能通过注销账号的方式来解除实名认证。具体的操作方式如下: 强制解除小红书实名认证 1、打开小红书,点击进入我”的界面,再点击右上角的三条横...

    阅读: 774

  • 快手怎么买热门

    快手怎么买热门

    上了快手热门的视频可以推送给更多的用户,让视频得到更高的热度,在快手买热门的具体操作方式如下: 快手怎么买热门 1、打开快手,点击左上角的三条横线”,进入功能栏”界面。 2...

    阅读: 750

  • 微信闭关中是什么状态

    微信闭关中是什么状态

    微信闭关中是不与外界往来的状态。微信状态显示闭关,可能是因为最近比较忙,又或者是碰到烦心的事情,有一种自我封闭的含义。以下是设置微信状态的操作方法: 微信闭关中是什么状态 1、打开微信,点击我&rdq...

    阅读: 680

  • qq打开文件默认设置怎么改

    qq打开文件默认设置怎么改

    qq,为腾讯qq的简称,是一款基于互联网的即时通信软件。修改qq打开文件默认设置的具体操作如下: qq打开文件默认设置怎么改 1、点击手机设置”-应用与权限”-应用管理&rdq...

    阅读: 711