SQL การใช้งาน IN Operator

โอเปอเรเตอร์ IN ใน SQL เป็นคำสั่งที่ใช้ในการกรองข้อมูลในตาราง โดยจะตรวจสอบค่าจากคอลัมน์ที่เลือกว่าตรงกับค่าที่อยู่ในรายการที่กำหนดหรือไม่ ตัวอย่างเช่น เราต้องการเลือกข้อมูลที่ค่าของคอลัมน์นั้นตรงกับค่าหลาย ๆ ค่า โดยไม่ต้องใช้คำสั่ง OR หลาย ๆ ครั้ง

Syntax พื้นฐาน

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

เตรียมฐานข้อมูลตัวอย่าง

สมมุติว่าเรามีตารางชื่อ Employees ที่เก็บข้อมูลของพนักงาน ดังนี้

SQL
CREATE TABLE Employees (
    EmployeeID INT,
    EmployeeName VARCHAR(50),
    Department VARCHAR(50),
    Salary DECIMAL(10,2)
);

INSERT INTO Employees (EmployeeID, EmployeeName, Department, Salary) VALUES
(1, 'John Doe', 'HR', 55000),
(2, 'Jane Smith', 'IT', 62000),
(3, 'Michael Johnson', 'Finance', 48000),
(4, 'Sarah Brown', 'IT', 70000),
(5, 'David Lee', 'HR', 51000),
(6, 'Laura Wilson', 'Finance', 54000);

การใช้งาน IN Operator

ตัวอย่างที่ 1: การเลือกข้อมูลที่มีอยู่ในรายการที่กำหนด

หากต้องการเลือกพนักงานที่อยู่ในแผนก HR หรือ IT สามารถเขียนโค้ดดังนี้

SQL
SELECT EmployeeName, Department
FROM Employees
WHERE Department IN ('HR', 'IT');

คำอธิบาย:

  • คำสั่งนี้จะดึงข้อมูลพนักงานที่อยู่ในแผนก HR หรือ IT เท่านั้น โดย IN ('HR', 'IT') จะทำการตรวจสอบว่าคอลัมน์ Department ตรงกับค่าที่อยู่ในลิสต์ที่เราระบุหรือไม่

ผลลัพธ์:

ตัวอย่างที่ 2: การเลือกข้อมูลที่มีอยู่ในลิสต์ของตัวเลข

เลือกพนักงานที่มี EmployeeID เท่ากับ 1, 3 หรือ 5

SQL
SELECT EmployeeName, EmployeeID
FROM Employees
WHERE EmployeeID IN (1, 3, 5);

คำอธิบาย:

  • ในตัวอย่างนี้ใช้ IN กับค่าของตัวเลขเพื่อเลือกพนักงานที่มี EmployeeID เป็น 1, 3 หรือ 5 โดยไม่ต้องใช้ OR หลาย ๆ ครั้ง

ผลลัพธ์:

ตัวอย่างที่ 3: การใช้ NOT IN

เราสามารถใช้ NOT IN เพื่อตรวจสอบว่าค่าของคอลัมน์ไม่อยู่ในรายการที่กำหนด ตัวอย่างเช่น เราต้องการดึงพนักงานที่ไม่ได้อยู่ในแผนก Finance

SQL
SELECT EmployeeName, Department
FROM Employees
WHERE Department NOT IN ('Finance');

คำอธิบาย:

  • NOT IN ใช้ในการดึงข้อมูลที่ไม่ตรงกับค่าในลิสต์ที่เรากำหนด ในที่นี้จะเลือกพนักงานที่ไม่ได้อยู่ในแผนก Finance

ผลลัพธ์:

สรุปการใช้งาน IN Operator

  • ใช้เพื่อตรวจสอบว่าค่าของคอลัมน์ตรงกับค่าที่อยู่ในรายการที่เรากำหนดหรือไม่
  • สามารถใช้ได้กับตัวเลข, ตัวอักษร, หรือแม้กระทั่งผลลัพธ์ของคำสั่งย่อย (Subquery)
  • NOT IN ใช้ในการดึงข้อมูลที่ไม่ตรงกับค่าที่กำหนด
แชร์เรื่องนี้