Trong SQL, mệnh đề ORDER BY được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần hoặc theo thứ tự giảm dần trên một hoặc nhiều cột. Một số cơ sở dữ liệu sắp xếp các kết quả truy vấn theo thứ tự tăng dần mặc định.
Trong đó, lệnh ASC được sử dụng để sắp xếp tăng dần và DESC được sử dụng để sắp xếp giảm dần.
Ở bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng mệnh đề ORDER BY trong SQL với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt câu lệnh tốt hơn.
Cú pháp lệnh ORDER BY trong SQL
Cú pháp cơ bản của lệnh ORDER BY với câu lệnh SELECT sẽ như sau:
SELECT danhsach_cot
FROM ten_bang
[WHERE dieu_kien]
[ORDER BY cot1, cot2, .. cotN] [ASC | DESC];
Lưu ý:
Ví dụ về ORDER BY trong SQL
Giả sử bảng NHANVIEN có các bản ghi như sau:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hue | 6500.00 | | 5 | Huy | 27 | Hatinh | 8500.00 | | 6 | Cao | 22 | HCM | 4500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | +----+----------+-----+-----------+----------+
Ví dụ sau minh họa cách sắp xếp theo thứ tự tăng dần cho TEN và LUONG.
SQL> SELECT * FROM NHANVIEN
ORDER BY TEN, LUONG;
Ví dụ trên trả về kết quả:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 6 | Cao | 22 | HCM | 4500.00 | | 5 | Huy | 27 | Hatinh | 8500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 4 | Manh | 25 | Hue | 6500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 1 | Thanh | 32 | Haiphong | 2000.00 | +----+----------+-----+-----------+----------+
Khối lệnh sau sẽ sắp xếp kết quả theo thứ tự giảm dần bởi trường TEN.
SQL> SELECT * FROM NHANVIEN
ORDER BY TEN DESC;
Kết quả trả về là:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hue | 6500.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | | 5 | Huy | 27 | Hatinh | 8500.00 | | 6 | Cao | 22 | HCM | 4500.00 | +----+----------+-----+-----------+----------+
Trong phần tiếp theo, chúng ta sẽ tìm hiểu về câu lệnh GROUP BY, các bạn nhớ theo dõi nhé.