ฟังก์ชัน NULL ใน SQL

ฟังก์ชัน ISNULL()、NVL()、IFNULL() และ COALESCE() ใน SQL

ดูตาราง "Products" ต่อไปนี้:

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

หาก "UnitsOnOrder" คือค่าที่สามารถเลือกได้ และสามารถมีค่า NULL ได้

เราใช้คำสั่ง SELECT ดังนี้:

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

ในตัวอย่างที่ขึ้นไป ถ้าค่า "UnitsOnOrder" คือ NULL ผลลัพธ์จะเป็น NULL

ฟังก์ชัน ISNULL() ของ Microsoft ใช้ที่จะกำหนดวิธีการจัดการค่า 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() ของ Microsoft

ใน MySQL สามารถใช้ฟังก์ชัน IFNULL() อย่างนี้:

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

หรือเราสามารถใช้ฟังก์ชัน COALESCE() อย่างนี้:

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