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