输入搜索值规则

本主题讨论当为搜索条件输入下列类型的文本值时必须遵循的约定:

  • 文本值

  • 数字值

  • 日期

  • 逻辑值

备注

本主题中的信息以标准 SQL-92 的规则为基础。不过,每个数据库可以按自己的方式实现 SQL。因此,这里提供的指南不一定适用于每种情况。如果在如何为某个数据库输入搜索值方面有任何疑问,请参见所使用的数据库文档。

搜索文本值

下列指南适用于在搜索条件中输入文本值的情况:

  • 引号   将文本值放到单引号内,如下例的姓氏所示:

    'Smith'
    

    如果在“条件”窗格中输入搜索条件,则只需键入文本值,查询和视图设计器将自动为该值括上单引号。

    备注

    在某些数据库中,单引号内的项被解释为文本值,而双引号内的项被解释为数据库对象,如列引用或表引用。因此,尽管查询和视图设计器能够接受双引号中的项,但对其所做的解释有可能与您预期的不同。

  • 嵌入的撇号   如果搜索的数据包含一个单引号(撇号),则可以输入两个单引号以指示该单引号是文本值而非分隔符。 例如,下面的条件搜索值“Swann's Way”:

    ='Swann''s Way'
    
  • 长度限制   当输入长字符串时,不要超过数据库 SQL 语句的最大长度。

  • 区分大小写   遵循所使用的数据库的大小写区分规则。 所使用的数据库决定文本搜索是否区分大小写。 例如,某些数据库将运算符“=”解释为精确区分大小写匹配,而有些数据库则允许任意大写和小写字符组合的匹配。

    如果不能确定数据库是否使用区分大小写搜索,可以在搜索条件中使用 UPPER 或 LOWER 函数转换搜索数据的大小写,如下面的示例所示:

    WHERE UPPER(lname) = 'SMITH'
    

    有关转换为大写字母和小写字母的函数的详细信息,请参见表达式函数

搜索数值

下列指南适用于在搜索条件中输入数值:

  • 引号   不能将数放在引号内。

  • 非数值字符   除小数点分隔符(在 Windows“控制面板”的**“区域设置”**对话框中定义)和负号 (-) 外,不能包含非数值字符。 不能包含数字分组符号(如千位间的逗号)或货币符号。

  • 小数点标记   如果输入整数,则可以包含小数点标记,不论所搜索的值是整数还是实数。

  • 科学记数法   可以使用科学记数法输入非常大或非常小的数字,如下面的示例所示:

    > 1.23456e-9
    

搜索日期

用来输入日期的格式取决于所使用的数据库和在查询和视图设计器的哪个窗格中输入日期。

备注

如果不知道数据源所使用的格式,请在“条件”窗格的筛选器列中以您熟悉的任何格式输入日期。设计器会将大多数这样的输入转换为正确的格式。

查询和视图设计器可使用下列日期格式:

  • 区域设置特定   在 Windows **“区域设置属性”**对话框中指定的日期格式。

  • 数据库特定   数据库可以理解的任何格式。

  • ANSI 标准日期   使用大括号、指定日期的标记“d”和日期字符串的格式,如下面的示例所示:

    { d '1990-12-31' }
    
  • ANSI 标准日期时间   与 ANSI 标准日期相似,但用“ts”代替“d”,并在日期中添加小时、分钟和秒(使用 24 小时制),如下例中对 1990 年 12 月 31 日的表示:

    { ts '1990-12-31 00:00:00' }
    

    一般情况下,ANSI 标准日期格式用于那些使用真实日期数据类型表示日期的数据库。 相反,日期时间格式用于支持日期时间数据类型的数据库。

下表汇总了可在查询和视图设计器的不同窗格中使用的日期格式。

Pane

日期格式

条件

区域设置特定 数据库特定 ANSI 标准

输入到“条件”窗格中的日期将在“SQL”窗格中转换成与数据库兼容的格式。

SQL

数据库特定 ANSI 标准

结果

区域设置特定

搜索逻辑值

逻辑数据的格式因数据库而异。 False 值通常被当作零 (0) 存储。 True 值通常会作为 1 存储,偶尔会作为 -1 存储。 在搜索条件中输入逻辑值时适用以下准则:

  • 若要搜索 False 值,请使用零,如下面的示例所示:

    SELECT * FROM authors
    WHERE contract = 0
    
  • 如果在搜索 True 值时不能确定使用什么格式,可尝试使用 1,如下面的示例所示:

    SELECT * FROM authors
    WHERE contract = 1
    
  • 或者,也可以通过搜索任何非零值来扩大搜索范围,如下面的示例所示:

    SELECT * FROM authors
    WHERE contract <> 0
    

请参见

其他资源

指定搜索条件