我们都知道在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的值 以上总结难免挂一漏万能恳请网友多多指正与补充! |