适用于:SQL Server
本文讨论在为搜索条件输入以下类型的文本值时必须使用的约定:
- 文本值
- 数值
- 日期
- 逻辑值
备注
本文中的信息派生自标准 SQL-92 的规则。 但是,每个数据库都可以以自己的方式实现 SQL。 因此,此处提供的准则在每种情况下都可能不适用。 如果对如何输入特定数据库的搜索值有疑问,请参阅所使用的数据库的文档。
搜索文本值
在搜索条件中输入文本值时,以下准则适用:
引号 将文本值用单引号括起来,例如:姓氏。
'Smith'
如果要在 “条件”窗格中输入搜索条件(Visual Database Tools),只需键入文本值,查询和视图设计器会自动将单引号放在它周围。
备注
在某些数据库中,单引号中的术语被解释为文本值,而双引号中的术语解释为数据库对象,如列或表引用。 因此,尽管查询和视图设计器可以接受双引号中的术语,但它可能以不同于预期的方式解释它们。
嵌入撇号 如果要搜索的数据包含单引号(撇号),可以输入两个单引号,以指示单引号表示为文本值,而不是分隔符。 例如,以下条件搜索值“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 标准 在 “条件”窗格中输入的日期(Visual Database Tools) 将转换为 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;