SQL ISNULL(), NVL(), IFNULL() and COALESCE() 函數這些在我們常用到sql語句中會常常用到的下面我們就來看看實例教程吧.
P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20
假設“ UnitsOnOrder ”一欄是可選的,可能包含空值。
我們有以下的SELECT語句:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products
在上面的例子中,如果任何“ UnitsOnOrder ”價值觀是空,其結果是無效的。 微軟的ISNULL ( )函數是用來指定我們要如何處理空值。 該NVL ( ) , IFNULL ( )和聯合( )函數還可以用來實現同樣的結果。 在這種情況下,我們要空值為零。 下面,如果“ UnitsOnOrder ”為NULL它不會損害計算,因為ISNULL ( )返回一個零值,如果為NULL : SQL Server / MS AccessSELECT 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