Latest web development tutorials

SQL ISNULL()、NVL()、IFNULL()およびCOALESCE()関数

SQL ISNULL()、NVL()、IFNULL()およびCOALESCE()関数

以下の「製品」の表を見てください:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23
3 Gorgonzola 15.67 9 20

"UnitsOnOrder"はオプションで、NULL値が含まれている場合があります。

私たちは、次のSELECT文を使用します。

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products

上記の例では、 "UnitsOnOrder"の値がある場合は、結果はNULLになり、NULLです。

Microsoftの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は、()関数をISNULLませんでした。 しかし、我々は同じ結果を得るためにNVL()関数を使用することができます。

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products

MySQLの

MySQLはまた、同様のISNULL()機能を有しています。 しかし、それは、MicrosoftのISNULL()関数で動作することは少し異なっています。

次のようにMySQLでは、我々はIFNULL()関数を使用することができます。

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products

または、次のように我々はCOALESCE()関数を使用することができます。

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products