SQL การใช้งาน WHERE Clause

WHERE Clause ใน SQL ใช้เพื่อกรองข้อมูลตามเงื่อนไขที่กำหนด โดยจะเลือกเฉพาะแถว (rows) ที่ตรงตามเงื่อนไขที่ระบุไว้เท่านั้น และสามารถใช้งานกับคำสั่ง SQL หลัก ๆ เช่น SELECT, UPDATE, DELETE ได้

การใช้งาน WHERE Clause

ตัวอย่างการใช้งานของ WHERE Clause ที่สามารถประยุกต์ใช้ได้มีดังนี้

1. การเปรียบเทียบค่า

สามารถใช้เครื่องหมายเปรียบเทียบ เช่น =, >, <, >=, <=, <> (ไม่เท่ากับ) ดังตัวอย่าง

SQL
SELECT * FROM employees
WHERE salary > 50000;

คำสั่งนี้จะเลือกข้อมูลจากตาราง employees เฉพาะพนักงานที่มีเงินเดือนมากกว่า 50,000

2. การใช้กับ AND, OR

สามารถใช้เงื่อนไขหลายเงื่อนไขร่วมกัน โดยใช้ AND (ทุกเงื่อนไขต้องเป็นจริง) หรือ OR (เงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง) ดังตัวอย่าง

SQL
SELECT * FROM employees
WHERE salary > 50000 AND department = 'IT';

คำสั่งนี้จะเลือกพนักงานที่มีเงินเดือนมากกว่า 50,000 และทำงานในแผนก IT

SQL
SELECT * FROM employees
WHERE department = 'IT' OR department = 'HR';

คำสั่งนี้จะเลือกพนักงานที่อยู่ในแผนก IT หรือ HR

3. การใช้กับ BETWEEN

สามารถใช้ BETWEEN เพื่อเลือกข้อมูลที่อยู่ระหว่างช่วงตัวเลข ดังตัวอย่าง

SQL
SELECT * FROM employees
WHERE salary BETWEEN 40000 AND 60000;

คำสั่งนี้จะเลือกพนักงานที่มีเงินเดือนอยู่ระหว่าง 40,000 ถึง 60,000

4. การใช้กับ IN

ใช้ IN เพื่อตรวจสอบค่าที่อยู่ในลิสต์ของค่าที่กำหนด ดังตัวอย่าง

SQL
SELECT * FROM employees
WHERE department IN ('IT', 'HR', 'Finance');

คำสั่งนี้จะเลือกพนักงานที่อยู่ในแผนก IT, HR หรือ Finance

5. การใช้กับ LIKE

ใช้ LIKE เพื่อค้นหาข้อความที่ตรงตามรูปแบบ (pattern) ที่ระบุ

  • % แทนตัวอักษรใด ๆ จำนวนเท่าไหร่ก็ได้
  • _ แทนตัวอักษรเพียงตัวเดียว
SQL
SELECT * FROM employees
WHERE name LIKE 'J%';

คำสั่งนี้จะเลือกพนักงานที่ชื่อขึ้นต้นด้วย ‘J’

SQL
SELECT * FROM employees
WHERE name LIKE '_mith';

คำสั่งนี้จะเลือกพนักงานที่มีชื่อลงท้ายด้วย ‘mith’ เช่น ‘Smith’

6. การใช้กับ IS NULL และ IS NOT NULL

ใช้ตรวจสอบค่าที่เป็น NULL หรือไม่เป็น NULL เช่น

SQL
SELECT * FROM employees
WHERE manager_id IS NULL;

คำสั่งนี้จะเลือกพนักงานที่ไม่มีผู้จัดการ (ค่าของ manager_id เป็น NULL)

SQL
SELECT * FROM employees
WHERE manager_id IS NOT NULL;

คำสั่งนี้จะเลือกพนักงานที่มีผู้จัดการ (ค่าของ manager_id ไม่เป็น NULL)

7. การใช้กับ EXISTS

ใช้ EXISTS เพื่อเช็คว่ามีผลลัพธ์จาก subquery หรือไม่

SQL
SELECT * FROM employees e
WHERE EXISTS (SELECT 1 FROM departments d WHERE d.id = e.department_id AND d.name = 'IT');

คำสั่งนี้จะเลือกพนักงานที่ทำงานในแผนก IT โดยเช็คจากตาราง departments

8. การใช้กับ NOT

สามารถใช้ NOT ร่วมกับเงื่อนไขต่าง ๆ เพื่อแสดงผลลัพธ์ที่ไม่ตรงตามเงื่อนไข เช่น

SQL
SELECT * FROM employees
WHERE salary NOT BETWEEN 40000 AND 60000;

คำสั่งนี้จะเลือกพนักงานที่มีเงินเดือนไม่อยู่ระหว่าง 40,000 ถึง 60,000

9. การใช้กับ ALL และ ANY

  • ALL ใช้เพื่อเปรียบเทียบกับทุกค่าที่อยู่ใน subquery
  • ANY ใช้เพื่อเปรียบเทียบกับค่าหนึ่งค่าจากค่าทั้งหมดใน subquery

ตัวอย่าง

SQL
SELECT * FROM employees
WHERE salary > ALL (SELECT salary FROM employees WHERE department = 'HR');

คำสั่งนี้จะเลือกพนักงานที่มีเงินเดือนมากกว่าพนักงานทุกคนในแผนก HR

SQL
SELECT * FROM employees
WHERE salary > ANY (SELECT salary FROM employees WHERE department = 'HR');

คำสั่งนี้จะเลือกพนักงานที่มีเงินเดือนมากกว่าพนักงานบางคนในแผนก HR

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