SQL ISNULL() , NVL() , IFNULL() ve COALESCE() Fonksiyonlar
Aşağıdaki bak "Products" tablosunun:
P_Id | Ürün adı | Birim fiyat | StokBirimleri | UnitsOnOrder |
---|---|---|---|---|
1 | JARLSBERG | 10,45 | 16 | 15 |
2 | Mascorpone peyniri | 32.56 | 23 | |
3 | İtalyan damarlı peyniri | 15.67 | 9 | 20 |
Varsayalım ki "UnitsOnOrder" sütunu isteğe bağlıdır ve NULL değerleri içerebilir.
Biz bu sorgu vardır:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)
FROM Products
Herhangi Yukarıdaki örnekte, "UnitsOnOrder" değerleri NULL, sonuç NULL.
Microsoft'un ISNULL() işlevi biz NULL değerleri tedavi etmek istiyorum nasıl belirtmek için kullanılır.
NVL() , IFNULL() , ve COALESCE() fonksiyonları da aynı sonucu elde etmek için kullanılabilir.
Bu durumda biz NULL değerleri sıfır olmasını istiyorum.
Eğer Aşağıda, "UnitsOnOrder" BOŞ olduğu için, hesaplama zarar vermeyecek ISNULL() değer NULL ise sıfır döndürür:
MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+IIF(ISNULL(UnitsOnOrder),0,UnitsOnOrder))
FROM Products
SQL Server
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products
Oracle
Oracle bir yok ISNULL() fonksiyonu. Ancak, biz kullanabilirsiniz NVL() aynı sonucu elde etmek işlevi:
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
MySQL
MySQL bir var ISNULL() fonksiyonu. Ancak, Microsoft'un farklı biraz işleri ISNULL() fonksiyonu.
MySQL biz kullanabilirsiniz IFNULL() böyle fonksiyonu:
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
ya da biz kullanabilirsiniz COALESCE() böyle fonksiyonu:
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products