如果你曾经在SQL语句里面有下面查询
select * from table1 where a<>2
而a 为null时,你会发现没有结果出来,按照常理,Null是空值,肯定不等于2,所以上面这个查询应该返回符合条件的所有值,但实际却没有返回。
最快的例子是下面这句SQL,结果是无值输出,正常应该输出1. 那么这类问题怎么解决?
select 1 where null<>2
第一种:不使用<>
select * from table1 where not (a=2)
第二种:使用isnull替换null值。
select * from table1 where isnull( a,-1)<>2
原文:http://yoke88.blog.51cto.com/973273/1379750