admin 管理员组文章数量: 1086019
2024年5月18日发(作者:织梦起诉了谁)
查询条件示例
全部显示
查询条件是一种规则,用来标识要包含在查询结果中的记录。并非所有查询都必
须包含条件,但是如果您没有兴趣查看存储在基本记录源中的所有记录,则在设
计查询时必须在其中添加条件。
本主题列出了多个查询条件示例。本文假设您熟悉如何设计简单的选择查询。
若要了解更多有关创建选择查询的内容,请参阅文章创建简单的选择查询。
本主题内容
•
•
•
•
•
查询条件简介
文本、备注和超链接字段的条件
数字、货币和自动编号字段的条件
日期/时间字段的条件
其他字段的条件
查询条件简介
条件类似于公式 - 它是可能由字段引用、运算符和常量组成的字符串。在
Microsoft Office Access 2007 中,查询条件也称为表达式。
下表显示了某些示例条件并说明它们如何工作。
条件
>25 and <50
DateDiff ("yyyy", [出生
日期], Date()) > 30
说明
此条件适用于数字字段,如“价格”或“库存量”。它仅包含这样的记
录:其中“价格”或“库存量”字段包含大于 25 且小于 50 的值。
此条件适用于日期/时间字段,如“出生日期”。只有某人的出生日
期与今天的日期之间相差的年数大于 30 的记录才会包含在查询
结果中。
此条件可用于任何类型的字段,以显示字段值为 Null 的记录。 Is Null
如您所见,根据条件所应用到的字段的数据类型以及您的具体要求,各个条件之
间看上去可能有很大的不同。某些条件很简单,只使用基本运算符和常量。而有
些条件很复杂,不仅使用函数、特殊运算符,还包含字段引用。
本主题按数据类型列出了多个常用条件。如果本主题中提供的示例不能满足您的
特定需求,则您可能需要自己编写条件。为此,您必须首先熟悉函数、运算符、
特殊字符的完整列表以及用于引用字段和文字的表达式的语法。有关详细信息可
以在请参阅一节列出的文章中找到。
在这里,您将了解在哪里添加条件以及如何添加。若要向查询添加条件,必须在
设计视图中打开查询。然后标识要为其指定条件的字段。如果设计网格中尚无该
字段,则您必须自行添加,方法是将它从查询设计窗口拖动到字段网格,或者双
击该字段(双击字段会自动将它添加到字段网格中的下一个空列)。最后,在“条
件”行中键入条件。
您在“条件”行中为不同字段指定的条件使用 AND 运算符组合在一起。换言之,在
“城市”和“出生日期”字段中指定的条件将如下方式进行解释:
城市 = "芝加哥" AND 出生日期 < DateAdd("yyyy", -40, Date())
“城市”和“出生日期”字段都包括条件。
只有“城市”字段的值为“芝加哥”的记录将满足此条件。
只有至少为 40 岁的那些人的记录将满足此条件。
只有同时满足这两个条件的记录将包括在结果中。
如果您只希望满足这两个条件中的一个条件该怎么办呢?换言之,如果您有二选
一条件,该如何输入它们呢?
如果您有二选一条件(即两组独立的条件,只要满足其中一组即可),则可以同
时使用设计网格中的“条件”和“或”行。
“城市”条件是在“条件”行中指定的。
“出生日期”条件是在“或”行中指定的。
“条件”和“或”行中指定的条件是使用 OR 运算符组合的,如下所示:
城市 = "芝加哥" OR 出生日期 < DateAdd("yyyy", -40, Date())
如果您需要指定更多备选条件,请使用“或”行下面的行。
在继续这些示例之前,请注意下列几点:
如果条件是临时的或者经常更改,则可以筛选查询结果,而不是频繁修改
查询条件。筛选器是更改查询结果但不更改查询设计的临时条件。有关筛选器的
详细信息,请参阅文章筛选:限制视图中的记录数。
•
•
如果条件字段不变,但是您感兴趣的值频繁更改,则可以创建参数查询。
参数查询会提示用户提供字段值,然后使用这些值创建查询条件。有关参数查询
的详细信息,请参阅文章在查询和报表中使用参数。
文本、备注和超链接字段的条件
下面的示例针对某个查询中的“国家/地区”字段,该查询基于一个存储联系人信息
的表。条件是在设计网格中该字段的“条件”行中指定的。
为超链接字段指定的条件默认情况下应用于该字段值的显示文本部分。若要为该
值的目标统一资源定位器 (URL) 部分指定条件,请使用“HyperlinkPart”表达式。
此表达式的语法如下:HyperlinkPart([Table1].[Field1],1) =
"/",其中 Table1 是包含超链接字段的表的名称,
Field1 是超链接字段, 是要匹配的 URL。
若要包含满足
下面条件的记
录
使用此条件 查询结果
完全匹配一个"China"
值,如“China”
不匹配某个Not "Mexico"
值,如“Mexico”
以指定的字符Like U*
串开头,如 U
返回“国家/地区”字段设置为“China”的记录。
返回“国家/地区”字段设置为“Mexico”以外的
国家/地区的记录。
返回名称以“U”开头的所有国家/地区(如
UK、USA 等等)的记录。
注释 当在表达式中使用星号 (*) 时,它表
示任意字符串 - 它也称为通配符。有关此类
字符的列表,请参阅文章 Access 通配符参
考。
不以指定字符Not Like U*
串开头,如 U
包含指定字符Like "*Korea*"
串,如“Korea”
返回名称以“U”以外的字符开头的所有国家/
地区的记录。
返回包含字符串“Korea”的所有国家/地区的
记录。
不包含指定字
符串,如
“Korea”
以指定字符串
结尾,如“ina”
不以指定字符
串结尾,如
“ina”
包含 Null 值
(即缺少值)
不包含 Null
值
包含零长度字
符串
Not Like "*Korea*" 返回不包含字符串“Korea”的所有国家/地区
的记录。
Like "*ina"
Not Like "*ina"
返回名称以“ina”结尾的所有国家/地区(如
China 和 Argentina)的记录。
返回以“ina”结尾的所有国家/地区(如 China
和 Argentina)之外的记录。
Is Null
Is Not Null
""(一对引号)
返回该字段中没有值的记录。
返回该字段中不缺少值的记录。
返回该字段设置为空(不是 Null)值的记录。
例如,提供给另一个部门的销售记录可能在
“国家地区”字段中包含空值。
返回“国家/地区”字段含有非空值的记录。
返回该字段中没有值或者该字段设置为空值
的记录。
不包含零长度
字符串
包含 Null 值
或零长度字符
串
不为空
Not ""
"" Or Is Null
Is Not Null And Not "" 返回“国家/地区”字段含有非空、非 Null 值的
记录。
返回从 Mexico 开始一直到字母表结束的所
有国家/地区的记录。
按字母顺序排>= "Mexico"
在某个值(如
Mexico)后面
在指定范围
内,如 A 到
D
匹配两个值中
的任一值,如
USA 或 UK
包含值列表中
的任一值
在字段值的特
定位置包含某
些字符
满足长度要求
Like "[A-D]*" 返回名称以字母“A”到“D”开头的国家/地区的
记录。
"USA" Or "UK" 返回对应 USA 和 UK 的记录。
In("France", "China",
"Germany", "Japan")
Right([CountryRegion], 1)
= "y"
Len([CountryRegion]) >
10
返回对应列表中指定的所有国家/地区的记
录。
返回最后一个字母为“y”的所有国家/地区的
记录。
返回名称长度大于 10 个字符的国家/地区的
记录。
匹配特定模式 Like "Chi??" 返回名称为五个字符长并且前三个字符为
“Chi”的国家/地区(如 China 和 Chile)的记
录。
注释 字符 ? 和 _ 在表达式中使用时表
示单个字符,这些字符也称为通配符。字符 _
不能在包含 ? 字符的表达式中使用,也不能
在包含 * 通配符的表达式中使用。您可以在
同时包含 % 通配符的表达式中使用通配符
_。
数字、货币和自动编号字段的条件
下面的示例针对某个查询中的“单价”字段,该查询基于一个存储产品信息的表。条
件是在查询设计网格中该字段的“条件”行中指定的。
若要包含满足
下面条件的记
录
完全匹配一个
值,如 100
使用此条件 查询结果
100 返回产品单价为 ¥100 的记录。
返回产品单价不为 ¥1000 的记录。
返回单价低于 ¥100 (<100) 的记录。第二个表达式
(<=100) 显示单击低于或等于 ¥100 的记录。
不匹配某个值,Not 1000
如 1000
包含小于某个
值(如 100)
< 100
<= 100
的值
包含大于某个>99.99
值(如 99.99)>=99.99
的值
包含两个值(如 20 or 25
20 或 25)中
的任一值
包含某个值范
围之内的值
返回单价高于 ¥99.99 (> 99.99) 的记录。第二个表达式显
示单击高于或等于 ¥99.99 的记录。
返回单价为 ¥20 或 ¥25 的记录。
>49.99 and 返回单价介于(但不包括)¥49.99 和 ¥99.99 之间的记
<99.99 录。
- 或 -
Between
50 and 100
<50
or >100
In(20, 25,
30)
Like
"*4.99"
返回单价不在 ¥50 和 ¥100 之间的记录。 包含某个范围
之外的值
包含多个特定
值之一
包含以指定数
字结尾的值
返回单价为 ¥20、¥25 或 ¥30 的记录。
返回单价以“4.99”结尾(如 ¥4.99、¥14.99、¥24.99 等
等)的记录。
注释 字符 * 和 % 在表达式中使用时表示任意数量的字
符,这些字符也称为通配符。字符 % 不能在包含 * 字符的
表达式中使用,也不能在包含 ? 通配符的表达式中使用。
您可以在同时包含 _ 通配符的表达式中使用通配符 %。
包含 Null 值
(即缺少值)
包含非 Null
值
Is Null
Is Not Null
返回“单价”字段中未输入值的记录。
返回“单价”字段中不缺少值的记录。
日期/时间字段的条件
下面的示例针对某个查询中的“订购日期”字段,该查询基于一个存储订单信息的
表。条件是在查询设计网格中该字段的“条件”行中指定的。
若要包含满足
下面条件的记
录
完全匹配一个
值,如
2/2/2006
使用此条件 查询结果
#2/2/2006# 返回交易发生在 2006 年
2 月 2 日的记录。请记住
在日期值两边括以 # 字
符,以使 Access 可区分
日期值和文本字符串。
返回交易不是发生在
2006 年 2 月 3 日的记
录。
返回交易发生在 2006 年
2 月 2 日之前的记录。
若要查看发生在该日期或
该日期之前的交易,请使
用 <= 运算符而不是 <
运算符。
返回交易发生在 2006 年
2 月 2 日之后的记录。
若要查看交易发生在该日
期或该日期之后的记录,
请使用 >= 运算符而不
是 > 运算符。
返回交易发生在 2006 年
2 月 2 日和 2006 年 2
不匹配某个值,Not #2/2/2006#
如 2/2/2006
包含某个特定
日期(如
2/2/2006)之前
的值
< #2/2/2006#
包含某个特定
日期(如
2/2/2006)之后
的值
> #2/2/2006#
包含某个日期
范围之内的值
>#2/2/2006# and <#2/4/2006#
月 4 日之间的记录。
也可以使用 Between 运
算符筛选一定范围的值。
例如,Between
#2/2/2006# and
#2/4/2006#
与 >#2/2/2006# and
<#2/4/2006# 相同。
包含某个范围
之外的值
<#2/2/2006# or >#2/4/2006# 返回交易发生在 2006 年
2 月 2 日之前或 2006
年 2 月 4 日之后的记
录。
返回交易发生在 2006 年
2 月 2 日或 2006 年 2
月 3 日的记录。
包含两个值中
的任一值,如
2/2/2006 或
2/3/2006
包含多个值之
一
#2/2/2006# or #2/3/2006#
In (#2/1/2006#, #3/1/2006#, #4/1/2006#) 返回交易发生在 2006 年
2 月 1 日、2006 年 3 月
1 日或 2006 年 4 月 1
日的记录。
返回交易发生在任何一年
的 12 月的记录。
包含特定月份DatePart("m", [销售日期]) = 12
(与年份无关)
内的某个日期,
如 12 月
包含特定季度DatePart("q", [销售日期]) = 1
(与年份无关)
内的某个日期,
如一季度
包含今天的日
期
Date()
返回交易发生在任一年的
第一季度的记录。
返回交易发生在当天的记
录。如果当天日期为
2/2/2006,则您将看到“订
购日期”字段设置为 2006
年 2 月 2 日的记录。
返回交易发生在当天的前
一天的记录。如果当天日
期为 2/2/2006,则您将看
到 2006 年 2 月 1 日的
记录。
返回交易发生在当天的后
一天的记录。如果当天日
期为 2/2/2006,则您将看
包含昨天的日
期
Date()-1
包含明天的日
期
Date() + 1
到 2006 年 2 月 3 日的
记录。
包含当前星期
内的日期
DatePart("ww", [销售日期]) =
DatePart("ww", Date()) and Year( [销售日
期]) = Year(Date())
Year([销售日期])* 53 + DatePart("ww", [销
售日期]) = Year(Date())* 53 +
DatePart("ww", Date()) - 1
Year([销售日期])* 53+DatePart("ww", [销售
日期]) = Year(Date())* 53+DatePart("ww",
Date()) + 1
Between Date() and Date()-6
返回交易发生在当前星期
内的记录。一个星期从星
期日开始到星期六结束。
返回交易发生在上个星期
的记录。一个星期从星期
日开始到星期六结束。
返回交易将在下个星期发
生的记录。一个星期从星
期日开始到星期六结束。
返回交易发生在前 7 天
的记录。如果当天日期为
2/2/2006,则您将看到从
2006 年 1 月 24 日到
2006 年 2 月 2 日这段
时间的记录。
返回当前月的记录。如果
当天日期为 2/2/2006,则
您将看到 2006 年 2 月
的记录。
返回上个月的记录。如果
当天日期为 2/2/2006,则
您将看到 2006 年 1 月
的记录。
返回下个月的记录。如果
当天日期为 2/2/2006,则
您将看到 2006 年 3 月
的记录。
一个月的销售记录。如果
当天日期为 2/2/2006,则
您将看到从 2006 年 1
月 2 日到 2006 年 2 月
2 日这段时间的记录
包含上一星期
内的日期
包含下个星期
内的日期
包含前 7 天内
的日期
包含属于当前
月的日期
Year([销售日期]) = Year(Now()) And
Month([销售日期]) = Month(Now())
包含属于上个
月的日期
Year([销售日期])* 12 + DatePart("m", [销售
日期]) = Year(Date())* 12 + DatePart("m",
Date()) - 1
Year([销售日期])* 12 + DatePart("m", [销售
日期]) = Year(Date())* 12 + DatePart("m",
Date()) + 1
Between Date( ) And DateAdd("M", -1,
Date( ))
包含属于下个
月的日期
包含前 30 天
或 31 天内的
日期
包含属于当前
季度的日期
Year([销售日期]) = Year(Now()) And 返回当前季度的记录。如
DatePart("q", Date()) = DatePart("q", Now()) 果当天日期为 2/2/2006,
则您将看到 2006 年一季
度的记录。
Year([销售日期])*4+DatePart("q",[销售日
期]) = Year(Date())*4+DatePart("q",Date())-
返回上个季度的记录。如
果当天日期为 2/2/2006,
包含属于上个
季度的日期
1
包含属于下个
季度的日期
Year([销售日期])*4+DatePart("q",[销售日
期]) =
Year(Date())*4+DatePart("q",Date())+1
Year([销售日期]) = Year(Date())
则您将看到 2005 年最后
一个季度的记录。
返回下个季度的记录。如
果当天日期为 2/2/2006,
则您将看到 2006 年二季
度的记录。
返回当年的记录。如果当
天日期为 2/2/2006,则您
将看到 2006 年的记录。
返回交易发生在去年的记
录。如果当天日期为
2/2/2006,则您将看到
2005 年的记录。
返回交易日期为明年的记
录。如果当天日期为
2/2/2006,则您将看到
2007 年的记录。
返回交易日期介于当年 1
月 1 日到当天之间的记
录。如果当天日期为
2/2/2006,则您将看到从
2006 年 1 月 1 日到
2006 年 2 月 2 日这段
时间的记录。
返回交易发生在当天之前
的记录。
返回交易将在当天之后发
生的记录。
返回缺少交易日期的记
录。
返回交易日期已知的记
录。
包含当年内的
日期
包含属于去年
的日期
Year([销售日期]) = Year(Date()) - 1
包含属于明年
的日期
Year([销售日期]) = Year(Date()) + 1
包含介于 1 月 Year([销售日期]) = Year(Date()) and
1 日和今天之Month([销售日期]) <= Month(Date()) and
间的日期(当年Day([销售日期]) <= Day (Date())
到今天为止的
记录)
包含发生在过
去的日期
包含发生在将
来的日期
筛选 Null 值
(即缺少值)
筛选非 Null
值
< Date()
> Date()
Is Null
Is Not Null
其他字段的条件
“是/否”字段 在“条件”行中,键入是以包含复选框已选中的记录。键入“否”以包含
复选框未选中的记录。
附件 在“条件”行中,键入 Is Null 以包含不含任何附件的记录。键入 Is Not Null
以包含含有附件的记录。
“查阅”字段 有两种类型的“查阅”字段:在现有数据源中查阅值的“查阅”字段(使
用外键)以及基于创建“查阅”字段时指定的值列表的“查阅”字段。
基于指定值的列表的“查阅”字段为文本数据类型,并且有效条件与其他文本字段相
同。
可在基于现有数据源值的“查阅”字段中使用的条件取决于外键的数据类型,而不是
所查阅的数据的数据类型。例如,您可能有一个显示雇员姓名的“查阅”字段,但是
该字段使用数字数据类型的外键。因为该字段存储数字而不是文本,所以应使用
对数字起作用的条件;即 >2。
如果不知道外键的数据类型,则可以在设计视图中查看源表以确定字段的数据类
型。要执行此操作:
1.
2.
•
•
在“导航窗格”中找到源表。
使用下列方法之一在设计视图中打开该表:
单击该表,然后按 Ctrl+Enter
右键单击该表,然后单击“设计视图”。
在表设计网格的“数据类型”列中列出了每个字段的数据类型。 3.
多值字段 多值字段中的数据作为行存储在隐藏表中,该表由 Office Access
2007 创建并填充以用于表示该字段。在查询设计视图中,它是通过使用可展开字
段在“字段列表”中表示的。若要对多值字段使用条件,应为隐藏表中的单个行提供
条件。要执行此操作:
1.
2.
创建一个包含多值字段的查询,并在设计视图中打开它。
单击多值字段旁边的加号 (+) 将其展开(如果该字段已经展开,则该符号
为减号 (-)。就在该字段的名称下面,您将看到一个代表该多值字段的某一个值
的字段。此字段将与多值字段同名,但后面跟有字符串“.Value”。
将多值字段及其单值字段拖至设计网格中单独的列中。如果想在结果中只
看到完整的多值字段,请清除对应单值字段的“显示”复选框。
在单值字段的“条件”行中键入您的条件,使用适合于这些值所表示的数据类
型的条件。
多值字段中的每个值将使用您提供的条件单独求值。例如,您可能有一个
存储了一系列数字的多值字段。如果提供条件 >5 AND <3,则任何至少有一个
值大于 5 且一个值小于 3 的记录都将匹配。
3.
4.
5.
另请参阅
•
•
•
Access 通配符参考
表达式的示例
查找、隐藏或删除重复数据
•
•
•
查找具有最近或最早日期的记录
查找组或字段中包含上限值和下限值的记录
函数(按字母顺序排列)
版权声明:本文标题:ACCESS数据库查询条件示例 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1716032446a690808.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论