mssql sqlserver null值带来的危害


摘要:
下文将讲述平时在数据库中遇见数据值为null的可能带来的陷阱分享给大家,如下所示:
实验环境:sql server 2008 R2



1.数值比对

当一个值为null时,我们进行if比对时,会出现unkown的返回值,稍不注意会出现null漏掉或比对错误的现象发生
例1:
select * from [maomao365.com]
where [列A] <> [列B]
—以上sql脚本不会显示出 [列A] 为null [列B]为其它任意值的数据
不会显示出 [列B] 为null [列A]为其它任意值的数据

例2:
SELECT * FROM [maomao365.com] where [列A] !=’测试信息’
—以上sql语句无法查询出 [列A] 为null的值


对null值的判断,必须使用 is null 作为判断
—错误写法
if @a =null
begin
—*
end
—正确写法:
if @a is null
begin
print ‘null正确判断方法’
end



2.数据统计

select count([列A]) from [maomao365.com]
—以上统计脚本会自动忽略掉[列A]所占用的行