我們都知道
在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的值
以上總結難免掛一漏萬能
懇請網友多多指正與補充!
From:http://tw.wingwit.com/Article/program/Oracle/201311/18435.html