Database SQL – ORDER BY Clause
หลังจากใช้งาน SQL Select query statement กันไปแล้ว บางครั้งข้อมูลที่แสดงออกมามีจำนวนมาก และการใช้ TOP LIMIT ROWNUM Clause ก็อาจจะไม่ตอบโจทย์ความต้องการ ถ้าเราต้องการไล่ดูข้อมูลทั้งหมด แต่ต้องการดูเป็นลำดับ หรือ sort ข้อมูลด้วย column ที่ต้องการ เราสามารถใช้คำสั่ง SQL ORDER BY Clause ต้อหลัง SQL Select เพื่อให้ข้อมูลที่แสดงมีการจัดลำดับเรียงจากน้อยไปมาก หรือ มากไปน้อย ตามที่เราต้องการได้ ซึ่งคำสั่ง ORDER BY จะทำการเรียงข้อมูลจากน้อยไปมาก เป็นค่าเริ่มต้น (Default)
รูปแบบ (Syntax)
SQL ORDER BY Clause ที่ใช้งานภายใต้ SQL Select query statement
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
เราสามารถใช้ 1 column หรือ หลาย column ในการจัดเรียงข้อมูลก็ได้ และสามารถจัดเรียงจากน้อยไปมาก หรือ มากไปน้อยด้วย option
- ASC (Default) เรียงจาก น้อยไปมาก
- DESC เรียงจาก มากไปน้อย
ตัวอย่างการใช้ ORDER BY Clause
ตัวอย่างข้อมูลใน table CUSTOMERS
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
การดึงข้อมูลจาก table CUSTOMERS ทุก column โดยจัดเรียงข้อมูลด้วย column ที่ชื่อ NAME และ SALARY จากน้อยไปมาก
SQL> SELECT * FROM CUSTOMERS
ORDER BY NAME, SALARY;
ผลลัพธ์ที่ได้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
+----+----------+-----+-----------+----------+
การดึงข้อมูลจาก table CUSTOMERS ทุก column โดยจัดเรียงข้อมูลด้วย column ที่ชื่อ NAME จากมากไปน้อย
SQL> SELECT * FROM CUSTOMERS
ORDER BY NAME DESC;
ผลลัพธ์ที่ได้
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
+----+----------+-----+-----------+----------+
Reference:
รวมคำสั่ง SQL Command พื้นฐานเบื้องต้น
Author: Suphakit Annoppornchai
Credit: https://saixiii.com, https://www.tutorialspoint.com