适用于: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