IS NULL ใช้เพื่อเช็คค่าที่เป็น NULL ในตารางข้อมูล NULL หมายถึงค่าที่ไม่มีหรือไม่ได้กำหนดไว้ (ไม่มีข้อมูล) ซึ่งต่างจากค่า 0 หรือค่าเว้นว่าง (empty string) ดังนั้นหากเราต้องการตรวจสอบว่า ค่าของคอลัมน์ใดๆ เป็น NULL หรือไม่ เราจะใช้เงื่อนไข IS NULL
สร้างตารางตัวอย่าง
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
salary DECIMAL(10, 2),
department_id INT
);
INSERT INTO employees (id, first_name, last_name, email, salary, department_id)
VALUES
(1, 'John', 'Doe', '[email protected]', 50000, 1),
(2, 'Jane', 'Smith', '[email protected]', 60000, NULL),
(3, 'Michael', 'Johnson', '[email protected]', NULL, 2),
(4, 'Emily', 'Davis', NULL, 70000, 3),
(5, 'Robert', 'Brown', '[email protected]', 55000, NULL);ข้อมูลในตารางตัวอย่างจะเป็นดังนี้

การประยุกต์ใช้งาน IS NULL
ค้นหาข้อมูลที่มีค่า NULL ในคอลัมน์ใดคอลัมน์หนึ่ง
เราสามารถใช้ IS NULL เพื่อดึงข้อมูลที่ไม่มีการระบุค่าของคอลัมน์ เช่น ค้นหาพนักงานที่ไม่มีการกำหนดแผนก (department_id เป็น NULL) ดังนี้
SELECT first_name, last_name
FROM employees
WHERE department_id IS NULL;คำสั่งนี้ดึงชื่อและนามสกุลของพนักงานที่ไม่มีการกำหนดแผนก (department_id เป็น NULL)

การใช้ IS NOT NULL
นอกจาก IS NULL เรายังสามารถใช้ IS NOT NULL เพื่อดึงข้อมูลที่มีค่าในคอลัมน์ที่ต้องการ เช่น การค้นหาพนักงานที่มีการระบุเงินเดือน (salary ไม่เป็น NULL)
SELECT first_name, last_name, salary
FROM employees
WHERE salary IS NOT NULL;คำสั่งนี้ดึงชื่อ นามสกุล และเงินเดือนของพนักงานที่มีการระบุเงินเดือน (salary ไม่เป็น NULL)

การใช้ IS NULL ร่วมกับ Aggregate Functions
เราสามารถใช้ IS NULL กับฟังก์ชันการรวม เช่น COUNT() เพื่อดูจำนวนเรคคอร์ดที่มีค่า NULL หรือไม่ NULL ดังตัวอย่าง
นับจำนวนพนักงานที่มีการกำหนดแผนก (department_id ไม่เป็น NULL)
SELECT COUNT(*) AS employees_with_department
FROM employees
WHERE department_id IS NOT NULL;คำสั่งนี้นับจำนวนพนักงานที่มีการกำหนดแผนก (department_id ไม่เป็น NULL)

นับจำนวนพนักงานที่ไม่มีการกำหนดเงินเดือน (salary เป็น NULL)
SELECT COUNT(*) AS employees_without_salary
FROM employees
WHERE salary IS NULL;คำสั่งนี้นับจำนวนพนักงานที่ไม่มีการระบุเงินเดือน (salary เป็น NULL)

ใช้ COALESCE เพื่อจัดการกับ NULL
ฟังก์ชัน COALESCE ใช้เพื่อแทนที่ค่าที่เป็น NULL ด้วยค่าอื่นที่เรากำหนด เช่น ในกรณีที่ต้องการแสดงข้อความเมื่ออีเมลของพนักงานเป็น NULL เราสามารถทำได้โดยใช้คำสั่งดังนี้
SELECT first_name, last_name,
COALESCE(email, 'No Email Provided') AS email
FROM employees;คำสั่งนี้จะแสดงข้อความ “No Email Provided” สำหรับพนักงานที่ไม่มีอีเมล (อีเมลเป็น NULL)

