this is a extra element for clear the floated element
NULL小议
  • 12/31
  • 2008
备份恢复 | Oracle 845 次查看
  我们都知道,在ORACLE中,NULL表示无值或空值。在这里,我把自己对NULL的一点体会写出来,与大家交流。

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

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

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

  V_A :='NULL';

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

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

  IF V_A = 'A' THEN 语句1;

  ELSE 语句2;

  END IF;

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

  IF V_A != 'A' THEN 语句2;

  ELSE 语句1;

  END IF;

  这时,V_A 为空时,还会执行 语句1。

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

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

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

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

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

  
您可能感兴趣的:

更多相关内容