SQL NULL 函数

Funguo ya SQL ISNULL()、NVL()、IFNULL() na COALESCE()

Tazama tablica "Products" inayofuata:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 computer 699 25 15
2 printer 365 36  
3 telephone 280 159 57

Kama "UnitsOnOrder" inaingia kwa chochote na inaweza kuwa na thamani ya NULL.

Tumekuendelea kwa ujumbe wa SELECT hii:

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

Kwenye matokeo yaliyotumiwa, kama 'UnitsOnOrder' inaona hufaa, matokeo ni hufaa.

Fomu ya ISNULL() ya Microsoft inatuma kuhusu maelezo ya hufaa.

NVL(), IFNULL() na COALESCE() fomu zinaenea matokeo yoyote.

Hapa, tunataka hufaa inaona 0.

Hizi, kama 'UnitsOnOrder' inaona hufaa, hauwezi kufikia matokeo ya kidini, kwa hivyo, kama hufaa inaona hufaa, ISNULL() inatuma 0.

SQL Server / MS Access

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

Oracle

Oracle inaona hufaa ISNULL() lakini tunaweza kutumia fomu ya NVL() kufikia matokeo yoyote:

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

MySQL

MySQL ina na fomu ya ISNULL() inayofanana. Hata hivyo, maana yake inaonyesha kwa Microsoft ISNULL() fomu.

Kwenye MySQL, naweza kutumia fomu ya IFNULL() kama hii:

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

au naweza kutumia fomu ya COALESCE() kama hii:

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