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

ใน SQL, โอเปอเรเตอร์ NOT ใช้เพื่อกลับค่าความจริง (True เป็น False และ False เป็น True) และมักใช้เพื่อกรองข้อมูลที่ไม่ตรงตามเงื่อนไขที่กำหนด ตัวอย่างการใช้งาน NOT สามารถใช้ร่วมกับเงื่อนไขต่างๆ เช่น WHERE, IN, EXISTS, และอื่น ๆ เพื่อเพิ่มความสามารถในการกรองข้อมูลในแบบที่ต้องการ

รูปแบบการใช้งานโอเปอเรเตอร์ NOT

สมมติว่ามีฐานข้อมูลชื่อ Employees ซึ่งมีรายละเอียดดังนี้

สร้างตารางและแทรกข้อมูล

SQL
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY,
    Name VARCHAR(100),
    Age INT,
    Department VARCHAR(50),
    Salary DECIMAL(10, 2)
);

INSERT INTO Employees (EmployeeID, Name, Age, Department, Salary) VALUES
(1, 'John Doe', 28, 'HR', 45000),
(2, 'Jane Smith', 35, 'IT', 55000),
(3, 'Alice Brown', 25, 'Finance', 32000),
(4, 'Bob White', 40, 'IT', 60000),
(5, 'Charlie Green', 29, 'HR', 40000);

การใช้งาน NOT ร่วมกับ WHERE

SQL
SELECT * FROM Employees
WHERE NOT Age >= 30;

ดึงข้อมูลพนักงานที่อายุน้อยกว่า 30 ปี จะได้ผลลัพธ์ดังนี้

การใช้งาน NOT ร่วมกับ IN

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

ดึงข้อมูลพนักงานที่ไม่ได้อยู่ในแผนก HR หรือ Finance

ผลลัพธ์

การใช้งาน NOT ร่วมกับ LIKE

SQL
SELECT * FROM Employees
WHERE Name NOT LIKE 'J%';

ดึงข้อมูลพนักงานที่ชื่อไม่ได้ขึ้นต้นด้วยตัวอักษร “J”

ผลลัพธ์

การใช้งาน NOT ร่วมกับ BETWEEN

SQL
SELECT * FROM Employees
WHERE Salary NOT BETWEEN 30000 AND 50000;

ดึงข้อมูลพนักงานที่เงินเดือนไม่ได้อยู่ในช่วง 30,000 ถึง 50,000

ผลลัพธ์

การใช้งาน NOT ร่วมกับ EXISTS

สมมติว่ามีตาราง Managers ดังนี้

SQL
-- สร้างตาราง Managers
CREATE TABLE Managers (
    ManagerID INT PRIMARY KEY,
    EmployeeID INT
);

-- แทรกข้อมูลลงในตาราง Managers
INSERT INTO Managers (ManagerID, EmployeeID) 
VALUES 
(1, 2),
(2, 4);

ตาราง Managers

SQL
SELECT * FROM Employees e
WHERE NOT EXISTS (
  SELECT 1 FROM Managers m WHERE m.EmployeeID = e.EmployeeID
);

ดึงข้อมูลพนักงานที่ไม่ได้เป็นผู้จัดการ (ไม่อยู่ในตาราง Managers)

ผลลัพธ์

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