SQL NULL ပြောင်းလဲ

SQL ISNULL()、NVL()、IFNULL() နှင့် COALESCE() သုံးစွဲမှု

အောက်ပါ "Products" အချက်အလက်ကို ကြည့်ပါ:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 ကွန်ပျူတာ 699 25 15
2 စက် 365 36  
3 ဖုန်း 280 159 57

အကယ်၍ "UnitsOnOrder" ကို ဆိုင်းငံ့ နှင့် NULL အကျိုးမရှိသည့် အသုံးပြုနိုင်ပါသည်။

ကျမ်းသားများကိုက်ထဲပါတယ်:

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

အပေါ်တွင် အရာဝတ္တု "UnitsOnOrder" သည် NULL ဖြစ်လျှင် အရိုက် သည် NULL ဖြစ်သည်။

မိုက်ခရိုဆိုင်း၏ ISNULL() ပုံစံ သည် NULL အရာဝတ္တု ကို ပြုလုပ်ခြင်း အတွက် အသုံးပြုသည်။

NVL(), IFNULL() နှင့် COALESCE() ပုံစံ တို့သည် အတူတူ ရရှိနိုင်ပါသည်။

အောက်မှာ ကျွန်တော်တို့သည် NULL အရာဝတ္တု ကို 0 အားဖြင့် ပြန်လည်ပေးလိုက်ပါသည်။

အောက်မှာ အရာဝတ္တု "UnitsOnOrder" သည် NULL ဖြစ်လျှင် အစီရင်ခံခြင်း အတွက် အကျိုးသား မဟုတ်ပေ။ အရာဝတ္တု သည် NULL ဖြစ်လျှင် ISNULL() သည် 0 ကို ပြန်လည်ပေးသည်။

SQL Server / MS Access

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

Oracle

Oracle တွင် ISNULL() ပုံစံ မရှိပါဘူး။ သို့သော် သူ၏ လုပ်ဆောင်ခြင်း သည် NVL() ပုံစံ ကို အသုံးပြုနိုင့် ပြီး အတူတူ ရရှိနိုင်ပါသည်။

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

MySQL

MySQL သည် ISNULL() ပုံစံ ကို ရှိပါသည်။ သို့သော် သူ၏ လုပ်ဆောင်ခြင်း သည် မိုက်ခရိုဆိုင်း၏ ISNULL() ပုံစံ နှင့် အမျှဝါးများ ဖြစ်ပါသည်။

MySQL တွင် ကျွန်တော်တို့သည် IFNULL() ပုံစံ ကို အသုံးပြုနိုင်ပါသည်။

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

သို့မဟုတ် ကျွန်တော်တို့သည် COALESCE() ပုံစံ ကို အသုံးပြုနိုင်ပါသည်။

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