与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"。