前记:总有人问我null为什么不等于null
首先写一个简单的例子
declare@table table(id int ,col varchar(20))
insertinto @table
select1,'bag' union all
select2,null union all
select3,'ball'
select* from @table where col<>null
select* from @table where col =null
/*
两句话的结果一样:
id col
----------- --------------------
都是没有数据
*/
为什么呢?
因为null<>null
然后我们用下面的语句来测试一下
if(null=null)
select'null=null' as result_a
else
select'null<>null' as result_a
if(nullis null)
select'null is null' as result_b
else
select'null is not null' as result_b
/*
result_a
----------
null<>null
result_b
------------
null is null
*/
结果说明了null不等于null,但null是null!
然后我们在赋值的时候,就不一样了
举个例子说明一下:
--测试
declare@i int
set@i=3;
set@i=null;
select@i as '@i';
/*结果
@i
-----------
NULL
*/
对于null来说,其实就是一句话:
判断的时候用"is",赋值的时候用"="
@【叶子】http://blog.csdn.net/maco_wang原创作品,转贴请注明作者和出处,留此信息。