当前位置:首页 > 个人杂谈 > 正文内容

总结这些年踩过ORACLE NULL的坑

作者: 葛屹肃 | 日期: 2022-07-24 | 分类: 个人杂谈

ORACLE字段如果没有设置默认值,那么空值就是NULL。NULL这个很有意思的,即不是空价,也不是0,等价于没有任何值,是未知数。

ORACLE NULL

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

  • 评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?

◎欢迎大家参与讨论