SQL การใช้งาน ORDER BY Keyword

คำสั่ง ORDER BY ใน SQL ใช้สำหรับเรียงลำดับผลลัพธ์จากคำสั่ง SELECT ตามคอลัมน์ที่เราต้องการ โดยเราสามารถเลือกเรียงลำดับข้อมูลได้ทั้งแบบเรียงจากน้อยไปมาก (ascending) และมากไปน้อย (descending)

การใช้งานพื้นฐานของ ORDER BY

รูปแบบการใช้งานพื้นฐานของ ORDER BY คือ

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
  • column1, column2 คือคอลัมน์ที่เราต้องการใช้เรียงลำดับ
  • ASC (ascending) คือการเรียงจากน้อยไปมาก ซึ่งเป็นค่าเริ่มต้น
  • DESC (descending) คือการเรียงจากมากไปน้อย

ตัวอย่างการใช้งาน

เรียงลำดับข้อมูลตามคอลัมน์เดียว

SQL
SELECT name, age 
FROM customers 
ORDER BY age ASC;

จากตัวอย่าง ข้อมูลจะถูกเรียงตามอายุจากน้อยไปมาก

เรียงลำดับข้อมูลจากมากไปน้อย

SQL
SELECT name, age 
FROM customers 
ORDER BY age DESC;

จากตัวอย่าง ข้อมูลจะถูกเรียงตามอายุจากมากไปน้อย

เรียงลำดับข้อมูลหลายคอลัมน์

SQL
SELECT name, age, city 
FROM customers 
ORDER BY city ASC, age DESC;

จากตัวอย่าง ข้อมูลจะถูกเรียงตามเมือง (city) จากน้อยไปมากก่อน แล้วเรียงตามอายุ (age) จากมากไปน้อยภายในแต่ละเมือง

ใช้เลขดัชนีของคอลัมน์ใน ORDER BY

SQL
SELECT name, age, city 
FROM customers 
ORDER BY 3, 2;

จากตัวอย่าง ข้อมูลจะถูกเรียงตามคอลัมน์ที่ 3 (city) ก่อน แล้วค่อยเรียงจากคอลัมน์ที่ 2 (age)

เรียงข้อมูลแบบกำหนดเองด้วย CASE

บางครั้งเราอาจต้องการเรียงข้อมูลตามเงื่อนไขเฉพาะ เช่น

SQL
SELECT name, age, membership_type
FROM customers
ORDER BY CASE 
           WHEN membership_type = 'Platinum' THEN 1
           WHEN membership_type = 'Gold' THEN 2
           WHEN membership_type = 'Silver' THEN 3
           ELSE 4
         END ASC;

ผลลัพธ์: ข้อมูลจะถูกเรียงตามประเภทสมาชิก โดย Platinum จะอยู่ก่อน ตามด้วย Gold และ Silver

เรียงลำดับผลลัพธ์ที่ไม่ซ้ำกัน

สามารถใช้ ORDER BY ร่วมกับ DISTINCT เพื่อดึงข้อมูลที่ไม่ซ้ำและเรียงลำดับได้ เช่น

SQL
SELECT DISTINCT city 
FROM customers 
ORDER BY city;

ผลลัพธ์: ข้อมูลจะถูกเรียงตามชื่อเมืองโดยไม่มีค่าซ้ำกัน

ข้อควรระวัง

  • ถ้าเราใช้ ORDER BY ในคอลัมน์ที่มีข้อมูลซ้ำ ผลลัพธ์อาจจะไม่เรียงตามที่คาดหวัง
  • การใช้คำสั่ง ORDER BY กับข้อมูลจำนวนมาก อาจทำให้ประสิทธิภาพการประมวลผลช้าลง
แชร์เรื่องนี้