Translate Into English Coffee & Tea
ASP.NET 中的 AJAX ASP.NET 画图全接触 ASP.NET 与 XML 声明式数据绑定 ASP.NET 网页抓取
C# 基础 C# 类教程 C# 加密 ASP.NET 成员资格 非“自动化”处理 Excel
QuickAjax Ajax 完美的语法高亮器 Silverlight Popfly
通栏广告
由SQL的like说开去(2)

当使用 LIKE 进行字符串比较时,模式字符串中的所有字符都有意义,包括起始或尾随空格。如果查询中的比较要返回包含"abc "(abc 后有一个空格)的所有行,则将不会返回包含"abc"(abc 后没有空格)的列所在行。但是可以忽略模式所要匹配的表达式中的尾随空格。如果查询中的比较要返回包含"abc"(abc 后没有空格)的所有行,则将返回以"abc"开始且具有零个或多个尾随空格的所有行。

假设表tbl中含有字段fldvarchar类型),表共有四条记录,各记录的fld值分别是:"abc "(abc后有一中文空格),"abc "(abc后有一英文空格),"abc"," abc"(abc前一有英文空格)。那么:
  select * from tbl where fld like 'abc',将取出前三条记录,记录中的尾随空格被忽略。
  select * from tbl where fld like 'abc '(abc后有一中文空格),那么将取出前两条记录,模式字符串中的尾随空格不能忽略。
  select * from tbl where fld like 'abc '(abc后有一英文空格),那么将取出前两条记录。
  select * from tbl where fld like ' abc'(abc前有一中文空格),那么将取出第四条记录。

如果上例中fld字段类型为char(20),那么第三、三条SQL语句将取出前三条记录,因为char类型字段会在记录后以空格补足长度,其它一样。

最后更新:2006-03-12 12:56

相关文章
文章评论
标题:必填
内容:
文章信息