ORDER BY ใช้ทำอะไร?
ORDER BY ใช้เรียงลำดับแถวในผลลัพธ์ของ SELECT ตามคอลัมน์หรือนิพจน์ที่ระบุ
รูปแบบคำสั่ง
SELECT column_list
FROM table_name
[WHERE condition]
ORDER BY expression [ASC | DESC];
ตัวเลือก
ASC: เรียงน้อยไปมาก (Default ถ้าไม่ระบุ)DESC: เรียงมากไปน้อย- ใช้ได้ทั้งคอลัมน์, นิพจน์, ตำแหน่ง (1, 2, 3...), หรือ alias
ตัวอย่าง
1. เรียงตามคอลัมน์ (Default ASC)
SELECT ho
FROM nhanvien
WHERE nhanvien_id > 1000
ORDER BY ho;
เทียบเท่า ORDER BY ho ASC
2. เรียง Descending
SELECT ho
FROM nhanvien
WHERE ten = 'Sarah'
ORDER BY ho DESC;
3. เรียงตามตำแหน่ง (Ordinal Position)
SELECT ho
FROM nhanvien
WHERE ho = 'Anderson'
ORDER BY 1 DESC;
คอลัมน์แรกใน SELECT = ตำแหน่ง 1
4. เรียงหลายคอลัมน์ (Mixed ASC/DESC)
SELECT ho, ten
FROM nhanvien
WHERE ho = 'Johnson'
ORDER BY ho DESC, ten ASC;
เรียงนามสกุลมากไปน้อย แล้วค่อยเรียงชื่อน้อยไปมาก
แนวทางปฏิบัติที่ดี: ระบุชื่อคอลัมน์ชัดเจน (หลีกเลี่ยงตำแหน่ง) เพื่อความอ่านง่ายและกัน error เมื่อเปลี่ยน SELECT list