Mệnh đề ORDER BY trong SQL




Mệnh đề ORDER BY trong SQL đượ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ố Database sắp xếp kết quả truy vấn theo thứ tự tăng dần theo mặc định.

Cú pháp

Cú pháp cơ bản của mệnh đề ORDER BY trong SQL như sau:

SELECT danh_sach_cot 
FROM ten_bang 
[WHERE dieu_kien] 
[ORDER BY cot1, cot2, .. cotN] [ASC | DESC];

Bạn có thể sử dụng nhiều hơn một cột trong mệnh đề ORDER BY. Đảm bảo rằng, bất cứ cột nào bạn đang sử dụng để sắp xếp, thì nó phải có trong danh_sach_cot.

Ví dụ

Bảng SINHVIEN có các bản ghi sau:

+----+---------+-----+-----------+--------+
| ID |  TEN    | TUOI|  KHOAHOC  | HOCPHI |
+----+---------+-----+-----------+---------+
|  1 | Hoang   |  21 | CNTT      | 4       |
|  2 | Viet    |  19 | DTVT      | 3     |
|  3 | Thanh   |  18 | KTDN      |  4      |
|  4 | Nhan    |  19 | CK        |   4.5   |
|  5 | Huong   |  20 | TCNH      |   5     |
+----+---------+-----+-----------+---------+

Ví dụ sau minh họa cách sắp xếp theo thứ tự tăng dần cho TEN và HOCPHI.

SQL> SELECT * FROM SINHVIEN
     ORDER BY TEN, HOCPHI;

Ví dụ trên sẽ cho kết quả:

+----+---------+-----+-----------+--------+
| ID |  TEN    | TUOI|  KHOAHOC  | HOCPHI |
+----+---------+-----+-----------+---------+
|  1 | Hoang   |  21 | CNTT      | 4       |
|  5 | Huong   |  20 | TCNH      |   5     |
|  4 | Nhan    |  19 | CK        |   4.5   |
|  3 | Thanh   |  18 | KTDN      |  4      |
|  2 | Viet    |  19 | DTVT      | 3     |
+----+---------+-----+-----------+---------+

Ví dụ sau sẽ sắp xếp theo thứ tự giảm dần cho TEN:

SQL> SELECT * FROM SINHVIEN
     ORDER BY TEN DESC;

Ví dụ trên sẽ cho kết quả:

+----+---------+-----+-----------+--------+
| ID |  TEN    | TUOI|  KHOAHOC  | HOCPHI |
+----+---------+-----+-----------+---------+
|   2 | Viet    |  19 | DTVT      | 3     |
|   3 | Thanh   |  18 | KTDN      |  4      |
| 4 | Nhan    |  19 | CK        |   4.5   |
| 5 | Huong   |  20 | TCNH      |   5     |
| 1 | Hoang   |  21 | CNTT      | 4       |
+----+---------+-----+-----------+---------+