ACCESS SQL查询条件示例

ACCESS SQL查询条件示例

2023年7月4日发(作者:)

查询条件示例

适用于: Microsoft Access 2010

希望基于字段中的值来限制查询的结果时,可以使用查询条件。查询条件是一个表达式,Access 将它与查询字段值进行比较以确定是否包括含有每个值的记录。例如,= "Chicago"是一个表达式,Access 可将它与查询中的文本字段的值进行比较。如果给定记录中该字段的值为"Chicago",则 Access 会在查询结果中包含该记录。

本主题列出了多个查询条件示例。本文假设您熟悉如何设计简单的选择查询。

要了解有关查询的详细信息,请参阅查询简介一文。

本主题内容

概述

文本、备注和超链接字段的条件

数字、货币和自动编号字段的条件

日期/时间字段的条件

其他字段的条件

概述

条件与公式类似,它是一个可能包含字段引用、运算符和常量的字符串。查询条件也称为表达式。

下表显示了某些示例条件并说明它们如何工作。

条件 说明

>25 and <50 此条件适用于数字字段,如“价格”或“库存量”。它仅包含这样的记录:其中“价格”或“库存量”字段包含大于 25 且小于 50 的值。

DateDiff ("yyyy", [出生日期],

Date()) > 30

Is Null

此条件适用于日期/时间字段,如“出生日期”。只有某人的出生日期与今天的日期之间相差的年数大于 30的记录才会包含在查询结果中。

此条件可应用于任何类型的字段,以显示字段值为 Null的记录。

各个条件之间看上去可能有很大的不同。某些条件很简单,它们只使用基本运算符(如“<”)和常量(如“50”)。而有些条件很复杂,它们使用函数(如“DateDiff”)或字段引用(如“[BirthDate]”)。 本主题提供了一些常用条件的示例,并按这些条件所应用于的数据类型对其进行了分组。您可以将本主题中提供的条件示例作为起点,开始着手编写自己的条件。此外,您可能需要熟悉函数、运算符、特殊字符和表达式的语法。有关详细信息,请参阅“请参阅”部分中列出的文章。

若要向查询添加条件,您必须在设计视图中打开查询。然后标识要为其指定条件的字段。如果要为其指定条件的字段尚未包含在设计网格中,则您可以添加该字段,方法是将该字段从查询设计窗口拖动到设计网格,或者双击该字段。如果所需字段包含在设计网格中,则在“条件”行中键入该字段的条件。

“条件”行中所指定的所有条件是组合在一起的

您在“条件”行中为不同字段指定的条件使用 AND 运算符组合在一起。例如,可以为“城市”字段指定条件="芝加哥",并为“出生日期”字段指定条件

城市 = "芝加哥" AND 出生日期

“城市”和“出生日期”字段都包括条件。

只有“城市”字段的值为“芝加哥”的记录将满足此条件。

只有至少为 40 岁的那些人的记录将满足此条件。

只有同时满足这两个条件的记录才会包括在结果中。

使用“或”行来指定替代条件

如果您有二选一条件(即两组独立的条件,只要满足其中一组即可),则可以同时使用设计网格中的“条件”和“或”行。

“城市”条件是在“条件”行中指定的。

“出生日期”条件是在“或”行中指定的。

“条件”和“或”行中指定的条件是使用 OR 运算符组合的,如下所示:

城市 = "芝加哥" OR 出生日期

如果您需要指定更多备选条件,请使用“或”行下面的行。

在继续这些示例之前,请注意下列几点:

如果条件是临时的或者经常更改,则可以筛选查询结果,而不是频繁修改查询条件。筛选器会更改查询结果,而不会更改查询设计。有关筛选器的详细信息,请参阅“请参阅”部分。

如果条件字段不变,但您要使用的值频繁更改,则可以创建参数查询。在运行参数查询时,该查询会要求您输入值,然后使用您输入的值创建查询条件。有关创建要求输入值的查询的详细信息,请参阅“请参阅”部分。

文本、备注和超链接字段的条件

下面的示例针对某个查询中的“国家/地区”字段,该查询基于一个存储联系人信息的表。条件是在设计网格中该字段的“条件”行中指定的。

要包含满足以下条件的记录 使用此条件 查询结果

完全匹配一个值,如“China”

不匹配某个值,如“Mexico”

"China"

Not "Mexico"

返回“国家/地区”字段设置为“China”的记录。

返回“国家/地区”字段设置为“Mexico”以外的国家/地区的记录。

以指定的字符串开头,如 U Like U* 返回名称以“U”开头的所有国家/地区(如 UK、USA 等等)的记录。

注释 在表达式中使用时,星号 (*) 代表任意字符串,它也称为通配符。有关此类字符的列表,请参阅Access 通配符参考一文。

不以指定字符串开头,如 U

包含指定字符串,如“Korea”

以指定字符串结尾,如“ina”

Not Like U*

Like "*Korea*"

Like "*ina"

返回名称以“U”以外的字符开头的所有国家/地区的记录。

返回包含字符串“Korea”的所有国家/地区的记录。

返回不包含字符串“Korea”的所有国家/地区的记录。

返回名称以“ina”结尾的所有国家/地区(如 China 和

Argentina)的记录。

返回以“ina”结尾的所有国家/地区(如 China 和

Argentina)之外的记录。

返回该字段中没有值的记录。

返回该字段中不缺少值的记录。

返回该字段设置为空(不是 Null)值的记录。例如,提供给另一个部门的销售记录可能在“CountryRegion”字段中包含空值。

不包含指定字符串,如“Korea” Not Like "*Korea*"

不以指定字符串结尾,如“ina” Not Like "*ina"

包含 Null 值(即缺少值)

不包含 Null 值

包含零长度字符串

Is Null

Is Not Null

""(一对引号)

不包含零长度字符串

不为空

按字母顺序排在某个值(如

Mexico)后面

在指定范围内,如 A 到 D

匹配两个值中的任一值,如

USA 或 UK

包含值列表中的任一值

Not ""

Is Not Null And Not ""

>= "Mexico"

Like "[A-D]*"

"USA" Or "UK"

In("France", "China",

"Germany", "Japan")

返回“国家/地区”字段含有非空值的记录。

返回该字段中没有值或者该字段设置为空值的记录。

返回“国家/地区”字段含有非空、非 Null 值的记录。

返回从 Mexico 开始一直到字母表结束的所有国家/地区的记录。

返回名称以字母“A”到“D”开头的国家/地区的记录。

返回对应 USA 和 UK 的记录。

返回对应列表中指定的所有国家/地区的记录。

包含 Null 值或零长度字符串 "" Or Is Null

在字段值的特定位置包含某些Right([CountryRegion], 1) = 返回最后一个字母为“y”的所有国家/地区的记录。

字符

满足长度要求

匹配特定模式

"y"

Len([CountryRegion]) > 10 返回名称长度大于 10 个字符的国家/地区的记录。

Like "Chi??" 返回名称为五个字符长并且前三个字符为“Chi”的国家/地区(如 China 和 Chile)的记录。

注释 字符?和_在表达式中使用时代表单个字符,这些字符也称为通配符。字符_不能在包含?字符的表达式中使用,也不能在包含*通配符的表达式中使用。您可以在同时包含%通配符的表达式中使用通配符_。 超链接条件稍微有点复杂

默认情况下,为超链接字段指定的条件将应用于该字段值的显示文本部分,而非链接目标。要为该值的目标统一资源定位器 (URL) 部分指定条件,请使用“HyperlinkPart”表达式。使用的语法与以下语法类似:HyperlinkPart([Table1].[Field1],1) =

"/",其中 Table1 是包含超链接字段的表的名称,Field1 是超链接字段, 是要匹配的 URL。

数字、货币和自动编号字段的条件

下面的示例针对某个查询中的“单价”字段,该查询基于一个存储产品信息的表。条件是在查询设计网格中该字段的“条件”行中指定的。

要包含满足以下条件的记录 使用此条件 查询结果

完全匹配一个值,如 100

不匹配某个值,如 1000

100

Not 1000

返回产品单价为¥100 的记录。

返回产品单价不为¥1000 的记录。

返回单价低于¥100 (<100) 的记录。第二个表达式

(<=100) 显示单击低于或等于¥100 的记录。

返回单价高于¥99.99 (> 99.99) 的记录。第二个表达式显示单击高于或等于¥99.99 的记录。

返回单价为¥20 或¥25 的记录。

包含小于某个值(如 100)的值 < 100

<= 100

包含大于某个值(如 99.99)的>99.99

值 >=99.99

包含两个值(如 20 或 25)中20 or 25

的任一值

包含某个值范围之内的值 >49.99 and <99.99

- 或 -

Between 50 and 100

包含某个范围之外的值 <50 or >100

返回单价介于(但不包括)¥49.99 和¥99.99 之间的记录。

返回单价不在¥50 和¥100 之间的记录。 包含多个特定值之一

包含以指定数字结尾的值

In(20, 25, 30)

Like "*4.99"

返回单价为¥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 可区分日期值和文本字符串。

不匹配某个值,如 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#

返回交易不是发生在 2006 年 2 月 2 日的记录。

返回交易发生在 2006 年 2 月 2 日之前的记录。

要查看发生在该日期或该日期之前的交易,请使用<=运算符而不是<运算符。

返回交易发生在 2006 年 2 月 2 日之后的记录。

要查看发生在该日期或该日期之后的交易,请使用>=运算符而不是>运算符。

返回交易发生在 2006 年 2 月 2 日和 2006 年 2 月 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

的值

包含两个值中的任#2/2/2006# or #2/3/2006#

一值,如 2/2/2006

或 2/3/2006

包含多个值之一 In (#2/1/2006#, #3/1/2006#, 返回交易发生在 2006 年 2 月 1 日、2006 年 3 月 1 日#4/1/2006#)

份无关)内的某个日12

期,如 12 月

包含特定季度(与年DatePart("q", [销售日期]) = 1 返回交易发生在任一年的第一季度的记录。

份无关)内的某个日期,如一季度

包含今天的日期 Date() 返回交易发生在当天的记录。如果当天日期为 2/2/2006,则您将看到“订购日期”字段设置为 2006 年 2 月 2 日的记录。

包含昨天的日期

包含明天的日期

Date()-1

Date() + 1

返回交易发生在当天的前一天的记录。如果当天日期为

2/2/2006,则您将看到 2006 年 2 月 1 日的记录。

返回交易发生在当天的后一天的记录。如果当天日期为

2/2/2006,则您将看到 2006 年 2 月 3 日的记录。

包含当前星期内的DatePart("ww", [销售日期]) = 返回交易发生在当前星期内的记录。一个星期从星期日开始日期 DatePart("ww", Date()) and 到星期六结束。

Year( [销售日期]) =

Year(Date())

包含上一星期内的Year([销售日期])* 53 +

日期

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 天的记录。如果当天日期为

日期

包含属于当前月的Year([销售日期]) =

日期

日期]) = Month(Now())

包含属于上个月的Year([销售日期])* 12 +

日期

返回上个月的记录。如果当天日期为 2/2/2006,则您将看DatePart("m", [销售日期]) = 到 2006 年 1 月的记录。

2/2/2006,则您将看到从 2006 年 1 月 24 日到 2006 年

2 月 2 日这段时间的记录。

返回当前月的记录。如果当天日期为 2/2/2006,则您将看Year(Now()) And Month([销售到 2006 年 2 月的记录。

返回交易将在下个星期发生的记录。一个星期从星期日开始到星期六结束。

返回交易发生在上个星期的记录。一个星期从星期日开始到DatePart("ww", [销售日期]) = 星期六结束。

或 2006 年 4 月 1 日的记录。

月 4 日之后的记录。

返回交易发生在 2006 年 2 月 2 日或 2006 年 2 月 3

日的记录。

包含特定月份(与年DatePart("m", [销售日期]) = 返回交易发生在任何一年的 12 月的记录。 Year(Date())* 12 +

DatePart("m", Date()) - 1

包含属于下个月的Year([销售日期])* 12 +

日期

Year(Date())* 12 +

DatePart("m", Date()) + 1

包含前 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())

包含属于上个季度Year([销售日的日期

期]) =

Year(Date())*4+DatePart("q",Date())- 1

包含属于下个季度Year([销售日的日期

期]) =

Year(Date())*4+DatePart("q",Date())+1

包含当年内的日期 Year([销售日期]) =

Year(Date())

包含属于去年的日Year([销售日期]) =

Year(Date()) - 1

Year(Date()) + 1

包含属于明年的日Year([销售日期]) =

包含介于 1 月 1 Year([销售日期]) =

返回当年的记录。如果当天日期为 2/2/2006,则您将看到

2006 年的记录。

返回交易发生在去年的记录。如果当天日期为 2/2/2006,则您将看到 2005 年的记录。

返回交易日期为明年的记录。如果当天日期为 2/2/2006,则您将看到 2007 年的记录。

返回交易日期介于当年 1 月 1 日到当天之间的记录。如果返回下个季度的记录。如果当天日期为 2/2/2006,则您将期])*4+DatePart("q",[销售日看到 2006 年二季度的记录。

返回上个季度的记录。如果当天日期为 2/2/2006,则您将期])*4+DatePart("q",[销售日看到 2005 年最后一个季度的记录。

返回当前季度的记录。如果当天日期为 2/2/2006,则您将看到 2006 年一季度的记录。

返回下个月的记录。如果当天日期为 2/2/2006,则您将看DatePart("m", [销售日期]) = 到 2006 年 3 月的记录。

日和今天之间的日Year(Date()) and Month([销售当天日期为 2/2/2006,则您将看到从 2006 年 1 月 1 日期(当年到今天为止日期]) <= Month(Date()) and 到 2006 年 2 月 2 日这段时间的记录。

的记录) Day([销售日期]) <= Day

(Date())

包含发生在过去的< Date()

日期

包含发生在将来的> Date()

日期

筛选 Null 值(即缺Is Null

少值)

筛选非 Null 值 Is Not Null 返回交易日期已知的记录。

返回缺少交易日期的记录。

返回交易将在当天之后发生的记录。

返回交易发生在当天之前的记录。

其他字段的条件 “是/否”字段 在“条件”行中,键入“是”可包含复选框已选中的记录。键入“否”可包含复选框未选中的记录。

附件 在“条件”行中,键入Is Null可包含不含任何附件的记录。键入Is Not Null可包含含有附件的记录。

查阅字段 有两种类型的查阅字段:一种是在现有数据源中使用外键查阅值的查阅字段;一种是基于创建查阅字段时指定的值列表的查阅字段。

基于指定值的列表的“查阅”字段为文本数据类型,并且有效条件与其他文本字段相同。

可在基于现有数据源值的查阅字段中使用的条件取决于外键的数据类型,而不是所查阅的数据的数据类型。例如,您可能有一个显示雇员姓名的查阅字段,但是该字段使用 Number 数据类型的外键。因为该字段存储数字而不是文本,所以应使用对数字起作用的条件;即>2。

如果不知道外键的数据类型,则可以在设计视图中查看源表以确定字段的数据类型。要执行此操作,请:

1. 在“导航窗格”中找到源表。

2. 使用下列方法之一在设计视图中打开该表:

单击该表,然后按Ctrl+Enter

右键单击该表,然后单击“设计视图”。

3. 在表设计网格的“数据类型”列中列出了每个字段的数据类型。

多值字段 多值字段中的数据作为行存储在隐藏表中,该表由 Office Access 2007 创建并填充以表示该字段。在查询“设计”视图中,该字段在“字段列表”内由一个可扩展字段表示。要对多值字段使用条件,应为隐藏表中的单个行提供条件。要执行此操作,请:

1. 创建一个包含多值字段的查询,并在设计视图中打开它。

2. 单击多值字段旁边的加号 (+) 将其展开(如果该字段已经展开,则此符号为减号 (-))。就在该字段的名称下面,您将看到一个代表该多值字段的某一个值的字段。此字段将与多值字段同名,但后面跟有字符串“.Value”。

3. 将多值字段及其单值字段拖至设计网格中单独的列中。如果想在结果中只看到完整的多值字段,请清除对应单值字段的“显示”复选框。

4. 在单值字段的“条件”行中键入您的条件,使用适合于这些值所表示的数据类型的条件。

5. 多值字段中的每个值将使用您提供的条件单独求值。例如,您可能有一个存储了一系列数字的多值字段。如果提供条件>5 AND <3,则任何至少有一个值大于

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688434842a137364.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信