简述一个关于null的理解误区:null不等于null--【叶子】

本文通过实例详细解析了SQL中NULL值的比较规则,包括为何NULL不等于NULL以及如何正确地进行NULL值的判断与赋值。并强调了在SQL中处理NULL时应当使用IS关键字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前记:总有人问我null为什么不等于null

首先写一个简单的例子

declare @table table(id int ,col varchar(20))

insert into @table

select 1,'bag' union all

select 2,null union all

select 3,'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(null is 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,但nullnull

然后我们在赋值的时候,就不一样了

举个例子说明一下:

--测试

declare @i int

set @i=3;

set @i=null;

select @i as '@i';

/*结果

@i

-----------

NULL

*/

对于null来说,其实就是一句话:

判断的时候用"is",赋值的时候用"="

@【叶子】http://blog.youkuaiyun.com/maco_wang 原创作品,转贴请注明作者和出处,留此信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值