总结这些年踩过ORACLE NULL的坑
作者: 葛屹肃 | 日期: 2022-07-24 | 分类: 个人杂谈
ORACLE字段如果没有设置默认值,那么空值就是NULL。NULL这个很有意思的,即不是空价,也不是0,等价于没有任何值,是未知数。
NULL特性:
1、NULL做加、减、乘、除等运算操作,结果仍为空。
2、逻辑判断时,使用IS NULL或IS NOT NULL。
3、NULL的处理使用NVL函数。
如果字段为NULL值,逻辑处理时要小心,建议加上NVL将万无一失。我总结下,NULL经常出现错误的例子。
1、等于或不等于NULL
如:if name=null then,这个判断永远不会成立,如同: if 1=0 then
正确:if name is null then,而不等于即为:if name is not null then
2、做加、减、乘、除时,遇到NULL字段,结果为NULL
如:age = age + 1,当age为NULL时,结果还NULL
正确:age = nvl(age,0) + 1
3、判断数据长度,如果为NULL,长度也为NULL,而不是0
如:if length(name) < 6 then,当name为NULL,结果也不成立
正确:if nvl(length(name),0) < 6 then,这样name为NULL时,也是会执行
4、使用count时,NULL记录不被计算
如:select count(name) from test,如果name为空时,该记录不计算在内
正确:select count(nvl(name,’ ‘)) from test,使用nvl赋于默认值
以上是小编总结得出这些年经常踩过ORACLE NULL值的坑,如果你也遇到NULL的坑,请留言给我们。
文章链接:https://www.geyisu.com/2718.html