Vấn đề:
Bạn cần hiển thị các bản ghi từ một bảng nhất định được sắp xếp theo hai cột.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên là employee
với các cột sau:id
, first_name
, last_name
và salary
.
id | first_name | last_name | lương |
---|---|---|---|
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Màu xanh lá cây | 2400 |
4 | Michael | Muller | 3000 |
5 | Mary | Màu xanh lá cây | 2400 |
Hãy hiển thị tất cả thông tin cho từng nhân viên nhưng sắp xếp hồ sơ theo mức lương theo thứ tự giảm dần trước rồi đến họ theo thứ tự tăng dần.
Giải pháp:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Truy vấn này trả về các bản ghi được sắp xếp theo hai cột: tiền lương và last_name .
id | first_name | last_name | lương |
---|---|---|---|
4 | Michael | M uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G reen | 2400 |
5 | Mary | G reen | 2400 |
2 | Ada | M uller | 2400 |
Thảo luận:
Nếu bạn muốn chọn các bản ghi từ một bảng nhưng muốn thấy chúng được sắp xếp theo hai cột, bạn có thể làm như vậy với ORDER BY
. Mệnh đề này nằm ở cuối truy vấn SQL của bạn.
Sau ORDER BY
từ khóa, hãy thêm tên của cột mà bạn muốn sắp xếp các bản ghi trước (trong ví dụ của chúng tôi là tiền lương). Sau đó, sau dấu phẩy, hãy thêm cột thứ hai (trong ví dụ của chúng tôi là last_name
). Bạn có thể sửa đổi thứ tự sắp xếp (tăng dần hoặc giảm dần) riêng cho từng cột. Nếu bạn muốn sử dụng thứ tự tăng dần (từ thấp đến cao), bạn có thể sử dụng ASC
từ khóa; Tuy nhiên, từ khóa này là tùy chọn, vì đó là thứ tự mặc định khi không có từ khóa nào được chỉ định. Nếu bạn muốn sử dụng thứ tự giảm dần, hãy đặt DESC
từ khóa sau cột thích hợp (trong ví dụ, chúng tôi đã sử dụng thứ tự giảm dần cho salary
cột).
Trong ví dụ của chúng tôi, đầu tiên chúng tôi sắp xếp kết quả theo mức lương theo thứ tự giảm dần (mức lương cao hơn đến mức thấp hơn) và sau đó theo họ theo thứ tự tăng dần trong các bản ghi đã được sắp xếp đó.