mssql sqlserver 比较运算符null注意事项


摘要:
常见的比较运算符,会返回true false unknown 三种值,在sql脚本编写中大家往往会忽略unknown数据而导致相应的错误发生,
下文通过举例的方式分享unknown数据类型
实验环境;sqlserver 2008


-----1:
declare @test int
if (@test > 8)
     set @test = 8
else if not (@test > 8)
     set @test = 88
else
     set @test = 888
-----输出----
 88
---因为@test的值为null,null同任何值进行比较运算符计算,都会得到unknown返回值,
--- unknown、not unknown 不是false 也不是true,
---所以程序才走到第三个分支
 


注意事项:
比较运算符进行相关计算时,一定要注意左右表达式是否为null,避免出现unknown返回值而漏掉相关判断