由SQL的like说开去(4)

作者:leen 来源:ITPOW 日期:2005-10-9

与UNICODE字符运算
  表tbl字段fld类型为nvarchar(20)
  declare @key varchar(20)
  set @key = 'abc'
  select * from tbl where fld like '%'+@key+'%'
  会选取出字段fld含有'abc'的记录。

与float类型运算
  我们知道float存储的是近似值,假如值3.0,可能是按2.99999...来存储的,但这只是它的存储方面,在使用like比较之前,它会按存储的值转换成实际的float值,然后再转换成varchar值。所以这时我们使用like '2.99%'like '3.0'都找不到这条记录的。应该用like '3'

与datetime类型运算
  同样,是先将存储的值转换成datetime格式,再转换成varchar,然后进行like运算。
  比如将2005-03-04 11:21:49转换成varchar为03  4 2005 11:21AM,我们就可以进行like运算。smalldatetime也是一样的。

与null值
  试图用"select * from tbl where fld like null"来提取表tbl中字段fld为null的记录是错误的用法,因为有null参与的运算同样返回null,我们应该用"select * from tbl where fld is null"。

相关文章