Fungsi SQL IFNULL(), ISNULL(), COALESCE(), dan NVL()
Lihat tabel “Produk” berikut:
IdProduk | NamaProduk | HargaPerUnit | UnitTersedia | UnitsOnOrder |
---|---|---|---|---|
1 | Jarlsberg | 10.45 | 16 | 15 |
2 | Mascarpone | 32.56 | 23 | |
3 | Gorgonzola | 15.67 | 9 | 20 |
Misalkan kolom “UnitsOnOrder” adalah opsional dan mungkin berisi nilai NULL.
Lihat statement SELECT berikut:
SELECT NamaProduk, HargaPerUnit * (UnitTersedia + UnitsOnOrder) FROM Produk;
Dalam contoh di atas, jika salah satu nilai “UnitsOnOrder” adalah NULL, hasilnya adalah NULL.
Solusi
MySQL
Fungsi MySQL IFNULL() dapat digunakan untuk mengembalikan nilai alternatif jika ekspresi adalah NULL:
SELECT NamaProduk, HargaPerUnit * (UnitTersedia + IFNULL(UnitsOnOrder, 0)) FROM Produk;
atau kita bisa menggunakan fungsi COALESCE(), seperti ini:
SELECT NamaProduk, HargaPerUnit * (UnitTersedia + COALESCE(UnitsOnOrder, 0)) FROM Produk;
SQL Server
Fungsi SQL Server ISNULL() dapat digunakan untuk mengembalikan nilai alternatif ketika ekspresi adalah NULL:
SELECT NamaProduk, HargaPerUnit * (UnitTersedia + ISNULL(UnitsOnOrder, 0)) FROM Produk;
MS Access
Fungsi MS Access IsNull() mengembalikan TRUE (-1) jika ekspresi adalah nilai null, jika tidak FALSE (0):
SELECT amaProduk, HargaPerUnit * (UnitTersedia + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder)) FROM Produk;
Oracle
Fungsi Oracle NVL() mencapai hasil yang sama:
SELECT NamaProduk, HargaPerUnit * (UnitTersedia + NVL(UnitsOnOrder, 0)) FROM Products;