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