Latest web development tutorials

SQL ISNULL (), NVL (), IFNULL () dan Bersatu () fungsi

SQL ISNULL (), NVL (), IFNULL () dan Bersatu () fungsi

Lihatlah "Produk" tabel berikut:

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

Jika "UnitsOnOrder" adalah opsional, dan dapat berisi nilai NULL.

Kami menggunakan pernyataan SELECT berikut:

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

Dalam contoh di atas, jika ada "UnitsOnOrder" nilai adalah NULL, maka hasilnya adalah NULL.

Fungsi Microsoft ISNULL () digunakan untuk menentukan bagaimana menangani nilai NULL.

NVL (), IFNULL () dan Bersatu () fungsi juga dapat mencapai hasil yang sama.

Di sini, kami berharap nilai NULL adalah 0.

Sekarang, jika "UnitsOnOrder" adalah NULL, itu tidak akan mempengaruhi perhitungan, karena jika nilai NULL, ISNULL () mengembalikan 0:

SQL Server / MS Access

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

peramal

Oracle tidak ISNULL () fungsi. Namun, kita dapat menggunakan fungsi NVL () untuk mencapai hasil yang sama:

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

MySQL

MySQL juga memiliki fungsi yang sama ISNULL (). Tetapi bekerja dengan ISNULL Microsoft () fungsi sedikit berbeda.

Dalam MySQL, kita dapat menggunakan IFNULL () fungsi sebagai berikut:

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

Atau kita bisa menggunakan fungsi Bersatu () sebagai berikut:

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