输入搜索值的规则 (Visual Database Tools)

适用于:SQL Server

本主题讨论在为搜索条件输入以下类型的文本值时必须使用的约定:

  • 文本值

  • 数值

  • 日期

  • 逻辑值

备注

本主题中的信息派生自标准 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 标准日期格式与使用真实日期数据类型表示日期的数据库一起使用。 相比之下,支持 datetime 数据类型的数据库使用日期时间格式。

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

窗格 日期格式
标准 特定于区域设置的数据库特定的 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  
    

另请参阅

指定搜索条件(Visual Database Tools)