电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

NULL 小议


发布日期:2023/2/26
 

我们都知道在ORACLE中NULL表示无值或空值在这里我把自己对NULL的一点体会写出来与大家交流

有两种NULL第一种NULL是做为值来赋给其它变量的A =NULL此时NULL与 (两个连续的单引号)等价第二种NULL是做为关系操作符用的 IS NULL 和 IS NOT NULL在这两个关系操作符中NULL是不能用 代替的

第一种NULL可以与等号连用如 UPDATE 表名 SET 字段=NULL WHERE ……

另外在赋值时一定要注意不要在NULL两边加上单引号若这样写

V_A :=NULL;

则 V_A 就是一个个字符的字符串了

对于一个变量的值做判断时如果变量为空值则除了 IS NULL 和 IS NOT NULL 两种判断外其它判断(如 =><等)的结果都是假但有一种情况可以包含进来比如当变量V_A的值为A做 语句否则做 语句这样就可以写为

IF V_A = A THEN 语句

ELSE 语句

END IF;

这时V_A 为空时也会执行 语句但反过来写就是错的

IF V_A != A THEN 语句

ELSE 语句

END IF;

这时V_A 为空时还会执行 语句

在计算一个number字段 A 的SUM时若有的记录此字段为空则用 SUM(A) 来求和时会忽略这样的记录

在计算一个number字段 A 的COUNT时若有的记录此字段为空则用 COUNT(A) 来计数时不会忽略这样的记录也会把这样的记录统计进来

在用 LIKE % 来匹配时空值不会被匹配因为%表示任意多个字符但不包括没有任何字符

对空值的转换用 nvl函数来完成NVL(A) 当A为空时返回否则为变量A的值

以上总结难免挂一漏万能恳请网友多多指正与补充!

上一篇:经典的问题与解答(4)

下一篇:如何解决ora-60012700错误问题