NULL 小议

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

我们都知道,在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 两种判定外,其它判定(如 =,,

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。以上总结难免挂一漏万能,恳请网友多多指正与补充!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航