SQL IS NULL函數
僅僅選取在 "Address" 列中帶有 NULL 值的記錄spa
select LastName,FirstName,Address FROM Personsit
where Address is nullast
結果集:select
LastName FirstName Addressco
Adams John 工作
Carter Thomas background
提示:請始終使用 IS NULL 來查找 NULL 值。
SQL IS NOT NULL
使用 IS NOT NULL 操做符:
select LastName,FirstName,Address FROM Persons
where Address is not null
結果集:
LastName FirstName Address
Bush George Fifth Avenue
SQL isnull()、nvl()、ifnull() 和 coalesce() 函數
P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computer 699 25 15
2 printer 365 36
3 telephone 280 159 57
假如 "UnitsOnOrder" 是可選的,並且能夠包含 NULL 值。
使用以下 SELECT 語句:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products
在上面的例子中,若是有 "UnitsOnOrder" 值是 NULL,那麼結果是 NULL。
微軟的 ISNULL() 函數用於規定如何處理 NULL 值。
nvl(), ifnull() 和 coalesce() 函數也能夠達到相同的結果。
在這裏,但願 NULL 值爲 0。
下面,若是 "UnitsOnOrder" 是 NULL,則不利於計算,所以若是值是 NULL 則 ISNULL() 返回 0。
SQL Server / MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products
Oracle
Oracle 沒有 ISNULL() 函數。能夠使用 nvl() 函數達到相同的結果:
SELECT ProductName,UnitPrice*(UnitsInStock+nvl(UnitsOnOrder,0))
FROM Products
MySQL
MySQL 也擁有相似 isnull() 的函數。不過它的工做方式與微軟的 ISNULL() 函數有點不一樣。
在 MySQL 中,能夠使用 IFNULL() 函數,就像這樣:
SELECT ProductName,UnitPrice*(UnitsInStock+ifnull(UnitsOnOrder,0))
FROM Products
或者能夠使用 coalesce()函數,就像這樣:
SELECT ProductName,UnitPrice*(UnitsInStock+coalesce(UnitsOnOrder,0))
FROM Products