SQL NULL Fonksiyonu

SQL ISNULL(), NVL(), IFNULL() ve COALESCE() fonksiyonları

Aşağıdaki "Products" tablosuna bakın:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 bilgisayar 699 25 15
2 mürekkep pabuç 365 36  
3 telefon 280 159 57

Eğer "UnitsOnOrder" seçmeli ise ve NULL değerleri içerebilir.

Aşağıdaki SELECT cümlesini kullanıyoruz:

SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Ürünler

Yukarıdaki örnekte, "UnitsOnOrder" değeri NULL ise sonuç NULL olur.

Microsoft'un ISNULL() fonksiyonu, NULL değerlerin nasıl işleneceğini belirler.

NVL(), IFNULL() ve COALESCE() fonksiyonları da aynı sonucu elde edebilir.

Burada, NULL değerlerin 0 olarak olmasını istiyoruz.

Aşağıda, "UnitsOnOrder" NULL ise hesaplama lehine olmaz, bu yüzden NULL değerler için ISNULL() 0 döndürür.

SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Ürünler

Oracle

Oracle, ISNULL() fonksiyonuna sahip değildir. Ancak, aynı sonucu elde etmek için NVL() fonksiyonunu kullanabiliriz:

SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Ürünler

MySQL

MySQL, ISNULL() fonksiyonuna benzer fonksiyonlara sahiptir. Ancak, bu fonksiyonlar Microsoft'un ISNULL() fonksiyonundan biraz farklı çalışır.

MySQL'de, IFNULL() fonksiyonunu şu şekilde kullanabiliriz:

SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Ürünler

veya COALESCE() fonksiyonunu kullanabiliriz, şu şekilde:

SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Ürünler