记录说明下数据库中的空串与null的区别,并比较oracle、sqlserver、mysql三者不同。oracle中null和空串是相同的,即都为null,但sqlserver和mysql两者有不同,所以需要留意其差异。
1、逻辑比较
null 与任何值做逻辑运算得结果都为 false,包括和null本身。针对null使用 is null 判断。
2、算数运算
null 和任何数值进行数学运算,结果都为 null。因此需要判断是否为空,oracle的nvl,sqlserver 的isnull,mysql的ifnull函数。
3、在一些内置函数中如果参数是null,其返回值也null,需要注意。
4、group by分组字段,如果为null,这分组和聚合函数返回值不同;下面截图是mysql的截图,sqlserver也是如此,oracle会认为null和空串都是null,所以分组保持一致。oracle细节做的不错,不过知道问题所在,在分组之前更新为一致即可。
本文解析了数据库中空字符串与null的区别,并对比了Oracle、SQL Server及MySQL三种数据库系统中的处理方式。重点介绍了逻辑运算、算术运算及内置函数中null的处理原则。
160

被折叠的 条评论
为什么被折叠?



