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