ฟังก์ชัน IFNULL ใน SQL ใช้เพื่อตรวจสอบค่าว่าเป็น NULL หรือไม่ หากค่าเป็น NULL จะคืนค่าที่กำหนดไว้แทน NULL หากค่าไม่เป็น NULL จะคืนค่านั้นออกมาเหมือนเดิม ซึ่งฟังก์ชันนี้จะช่วยในการจัดการข้อมูลที่อาจมีช่องว่างหรือค่าว่างในฐานข้อมูล
โครงสร้างของฟังก์ชัน IFNULL
IFNULL(expression, value_if_null)
expressionคือค่าที่เราต้องการตรวจสอบvalue_if_nullคือค่าที่จะถูกคืนกลับหากค่าexpressionเป็นNULL
การใช้งานฟังก์ชัน IFNULL
สร้างตาราง employees เพื่อใช้เป็นตัวอย่าง โดยใช้โค้ดดังต่อไปนี้
-- สร้างตาราง employees
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
salary DECIMAL(10, 2)
);
-- แทรกข้อมูลตัวอย่าง
INSERT INTO employees (employee_id, first_name, last_name, salary) VALUES
(1, 'John', 'Doe', 50000),
(2, 'Jane', 'Smith', NULL),
(3, 'Mike', 'Brown', 45000),
(4, 'Emily', 'Johnson', NULL),
(5, 'James', 'White', 60000);จะได้ข้อมูลตัวอย่างดังนี้

การใช้ IFNULL เพื่อแทนค่าที่เป็น NULL ด้วยค่าที่ต้องการ
ในตัวอย่างนี้ เราจะใช้ IFNULL เพื่อแทนค่า NULL ในคอลัมน์ salary ด้วยข้อความ "No Salary" เพื่อแสดงให้เห็นว่าบางคนไม่มีการระบุเงินเดือน
SELECT
employee_id,
first_name,
last_name,
IFNULL(salary, 'No Salary') AS salary
FROM employees;ผลลัพธ์: พนักงานที่ไม่มีการระบุเงินเดือนจะถูกแทนที่ด้วยคำว่า No Salary

การใช้ IFNULL ร่วมกับการคำนวณ
เราสามารถใช้ IFNULL ร่วมกับการคำนวณได้ ตัวอย่างเช่น หากต้องการแทนค่า NULL ใน salary ด้วยค่าเริ่มต้น เช่น 30000 บาท และคำนวณเงินเดือนรวมเพิ่มขึ้น 10%
SELECT
employee_id,
first_name,
last_name,
IFNULL(salary, 30000) * 1.1 AS salary_with_bonus
FROM employees;ผลลัพธ์ พนักงานทุกคนที่มีเงินเดือนอยู่แล้วจะได้รับเงินเดือนเพิ่มคนละ 10% ส่วนพนักงานที่ไม่มีเงินเดือนจะได้รับการปรับเงินเดือนโดยคิดจากฐาน 30,000 และบวกไปอีก 10% ของ 30,000

