SQL การใช้งานฟังก์ชัน ISNULL

ฟังก์ชัน ISNULL ใช้เพื่อแทนค่าที่เป็น NULL ด้วยค่าที่ระบุไว้ ฟังก์ชันนี้มีโครงสร้างดังนี้

ISNULL(expression, replacement_value)

โดย expression คือค่าหรือคอลัมน์ที่ต้องการตรวจสอบ และ replacement_value คือค่าที่จะแทนที่เมื่อ expression มีค่าเป็น NULL

สร้างตารางและแทรกข้อมูลตัวอย่าง

สร้างตารางและแทรกข้อมูลตัวอย่างลงในตารางโดยใช้คำสั่งดังนี้ (ในตัวอย่างใช้ MS SQL Server)

SQL
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    FirstName NVARCHAR(50),
    LastName NVARCHAR(50),
    Salary DECIMAL(10, 2)
);

-- แทรกข้อมูลตัวอย่างเข้าไปในตาราง
INSERT INTO Employees (EmployeeID, FirstName, LastName, Salary) VALUES
(1, 'John', 'Doe', 50000),
(2, 'Jane', 'Smith', NULL),
(3, 'Alice', 'Johnson', 70000),
(4, 'Bob', 'Williams', NULL);

จะได้ข้อมูลตัวอย่างดังนี้

การใช้งานฟังก์ชัน ISNULL

สมมุติว่าเราต้องการให้เงินเดือนพนักงานที่มีค่า NULL ถูกแทนด้วยค่าเริ่มต้น เช่น 30000 เราสามารถใช้ ISNULL ได้ดังนี้

SQL
SELECT 
    EmployeeID,
    FirstName,
    LastName,
    ISNULL(Salary, 30000) AS Salary
FROM Employees;

ผลลัพธ์

การใช้ฟังก์ชัน ISNULL กับการคำนวณ

เราสามารถใช้ ISNULL ในการคำนวณร่วมกับคอลัมน์อื่นได้ เช่น เราต้องการคำนวณโบนัส 10% ของเงินเดือนสำหรับพนักงานทุกคน และถ้าเงินเดือนเป็น NULL ให้แทนค่าด้วย 0 ก่อนคำนวณ โดยทำได้ดังนี้

SQL
SELECT 
    EmployeeID,
    FirstName,
    LastName,
    ISNULL(Salary, 0) AS Salary,
    ISNULL(Salary, 0) * 0.10 AS Bonus
FROM Employees;

ผลลัพธ์

การใช้งาน ISNULL ในการจัดการการแสดงผล

อีกตัวอย่างหนึ่งคือการใช้ ISNULL เพื่อแสดงข้อความในกรณีที่คอลัมน์มีค่า NULL เช่น เราต้องการแสดงข้อความ “No Salary” สำหรับพนักงานที่ไม่มีข้อมูลเงินเดือน

SQL
SELECT 
    EmployeeID,
    FirstName,
    LastName,
    ISNULL(CAST(Salary AS NVARCHAR), 'No Salary') AS Salary
FROM Employees;

ผลลัพธ์ คอลัมน์ Salary ของพนักงานที่ไม่มีเงินเดือน จะถูกแทนที่ด้วยคำว่า No Salary

แชร์เรื่องนี้