ฟังก์ชัน NULL ใน SQL
- หน้าก่อนหน้า SQL Nulls
- หน้าต่อไป ประเภทข้อมูล 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
- หน้าก่อนหน้า SQL Nulls
- หน้าต่อไป ประเภทข้อมูล SQL