SQL NULL Fonksiyonu
- Önceki Sayfa SQL Nulls
- Sonraki Sayfa SQL Veri Tipleri
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
- Önceki Sayfa SQL Nulls
- Sonraki Sayfa SQL Veri Tipleri