Latest web development tutorials

Funkcja SQL ISNULL (), NVL (), IFNULL () i COALESCE ()

Funkcja SQL ISNULL (), NVL (), IFNULL () i COALESCE ()

Spójrz na poniższej tabeli "Produkty":

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

Jeśli "UnitsonOrder" jest opcjonalny i może zawierać wartości NULL.

Używamy następującą instrukcję SELECT:

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

W powyższym przykładzie, jeśli jest "UnitsonOrder" wartość jest NULL, to wynikiem jest NULL.

Funkcja Microsoft ISNULL () służy do określenia sposobu obsługi wartości NULL.

NVL (), IFNULL () i zlewają function () może osiągnąć takie same wyniki.

Tutaj mamy nadzieję, wartość NULL jest 0.

Teraz, jeśli "UnitsonOrder" jest NULL, to nie będzie miało wpływu na obliczenie, ponieważ jeśli wartość jest NULL, ISNULL () zwraca 0:

SQL Server / MS Access

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

wyrocznia

Oracle nie IsNull funkcji (). Jednakże, możemy użyć funkcji NVL (), aby osiągnąć ten sam rezultat:

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

MySQL

MySQL posiada również funkcję podobną ISNULL (). Ale to działa w ISNULL Microsoftu () funkcja jest nieco inna.

W MySQL, możemy użyć funkcji IFNULL () w następujący sposób:

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

Albo możemy użyć funkcji COALESCE () w następujący sposób:

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