1. 程式人生 > 實用技巧 >SQL NULL 值

SQL NULL 值

NULL 值是遺漏的未知資料。

預設地,表的列可以存放 NULL 值。

本章講解 IS NULL 和 IS NOT NULL 操作符。

SQL NULL 值

如果表中的某個列是可選的,那麼我們可以在不向該列新增值的情況下插入新記錄或更新已有的記錄。這意味著該欄位將以 NULL 值儲存。

NULL 值的處理方式與其他值不同。

NULL 用作未知的或不適用的值的佔位符。

註釋:無法比較 NULL 和 0;它們是不等價的。

SQL 的 NULL 值處理

請看下面的 "Persons" 表:

IdLastNameFirstNameAddressCity
1 Adams John London
2 Bush George Fifth Avenue New York
3 Carter Thomas Beijing

假如 "Persons" 表中的 "Address" 列是可選的。這意味著如果在 "Address" 列插入一條不帶值的記錄,"Address" 列會使用 NULL 值儲存。

那麼我們如何測試 NULL 值呢?

無法使用比較運算子來測試 NULL 值,比如 =, <, 或者 <>。

我們必須使用 IS NULL 和 IS NOT NULL 操作符。

SQL IS NULL

我們如何僅僅選取在 "Address" 列中帶有 NULL 值的記錄呢?

我們必須使用 IS NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

結果集:

LastNameFirstNameAddress
Adams John
Carter Thomas

提示:請始終使用 IS NULL 來查詢 NULL 值。

SQL IS NOT NULL

我們如何選取在 "Address" 列中不帶有 NULL 值的記錄呢?

我們必須使用 IS NOT NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

結果集:

LastNameFirstNameAddress
Bush George Fifth Avenue

在下一節中,我們瞭解 ISNULL()、NVL()、IFNULL() 和 COALESCE() 函式。