En son web geliştirme öğreticiler
 

SQL BOŞ İşlevleri


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