ORDER BY

ORDER

Để sắp xếp các dữ liệu theo thứ tự chúng ta sẽ sử dụng từ khóa ORDER BY.
Thứ tự tăng dần có thể sử dụng thêm từ khóa ASC, thứ tự giảm dần hãy sử dụng từ khóa DESC.

Ví dụ muốn xem các học sinh có thứ tự điểm theo thứ tự từ cao đến thấp.

1
2
3
SELECT name, score 
  FROM students
  ORDER BY score DESC;

Kết quả sẽ là

+------------------------+-------+
| name                   | score |
+------------------------+-------+
| Phan Thanh Bình        |   9.5 |
| Nguyễn Ngọc Tuấn       |   8.9 |
| Nguyễn Quang Vinh      |   8.3 |
| Ngô Nhật Minh          |   7.8 |
| Châu Thị Thủy          |   7.6 |
+------------------------+-------+

Ngoài so sánh kiểu số, chúng ta còn có thể so sánh kiểu xâu (string).

Ví dụ nếu muốn hiển thị tên theo thứ tự bảng chữ cái chúng ta sử dụng:

1
2
3
SELECT name, score 
  FROM students 
  ORDER BY name;

Kết quả sẽ in ra.

+------------------------+-------+
| name                   | score |
+------------------------+-------+
| Châu Thị Thủy          |   7.6 |
| Ngô Nhật Minh          |   7.8 |
| Nguyễn Ngọc Tuấn       |   8.9 |
| Nguyễn Quang Vinh      |   8.3 |
| Phan Thanh Bình        |   9.5 |
+------------------------+-------+

Sắp xếp theo nhiều cột

Ví dụ sau chúng ta sẽ sắp xếp theo tên lớp, nếu cùng lớp thì sắp xếp theo điểm số từ cao đến thấp:

1
2
3
SELECT name, class_name, score 
  FROM students 
  ORDER BY class_name ASC, score DESC;
Kết quả sẽ in ra.
+------------------------+------------+-------+
| name                   | class_name | score |
+------------------------+------------+-------+
| Nguyễn Ngọc Tuấn       | 5A         |   8.9 |
| Nguyễn Quang Vinh      | 5A         |   8.3 |
| Châu Thị Thủy          | 5A         |   7.6 |
| Phan Thanh Bình        | 5B         |   9.5 |
| Ngô Nhật Minh          | 5B         |   7.8 |
+------------------------+------------+-------+

Kết hợp với điều kiện

Ví dụ sau sẽ sắp xếp các học sinh theo điểm số giảm dần trong lớp 5A.

1
2
3
4
SELECT name, score, class_name 
  FROM students 
  WHERE class_name = '5A'
  ORDER BY score DESC;

Kết quả sẽ là:

+------------------------+-------+------------+
| name                   | score | class_name |
+------------------------+-------+------------+
| Nguyễn Ngọc Tuấn       |   8.9 | 5A         |
| Nguyễn Quang Vinh      |   8.3 | 5A         |
| Châu Thị Thủy          |   7.6 | 5A         |
+------------------------+-------+------------+