Vấn đề:
Bạn muốn sắp xếp kết quả của một truy vấn SQL theo thứ tự tăng dần hoặc giảm dần.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng có tên salary_information
với dữ liệu trong các cột id
, first_name
, last_name
và monthly_earnings
. Chúng tôi muốn sắp xếp nhân viên theo monthly_earnings
của họ theo thứ tự giảm dần.
id | first_name | last_name | month_earnings |
---|---|---|---|
1 | Calvin | Rios | 3500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2300 |
4 | Alex | Watkins | 5500 |
Giải pháp:
Chúng tôi sẽ sử dụng ORDER BY
mệnh đề. Đây là truy vấn:
Chúng tôi sẽ sử dụng hàm CURRENT_DATE
để lấy ngày hiện tại:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Đây là kết quả của truy vấn:
first_name | last_name | month_earnings |
---|---|---|
Alex | Watkins | 5500 |
Alan | Paterson | 4000 |
Calvin | Rios | 3500 |
Kurt | Evans | 2300 |
Bây giờ, chúng ta có thể thấy Alex Watkins đứng đầu danh sách, điều đó có nghĩa là anh ấy kiếm được nhiều tiền nhất.
Thảo luận:
Sử dụng ORDER BY
nếu bạn muốn sắp xếp tập dữ liệu theo thứ tự tăng dần hoặc giảm dần. Cú pháp cho ORDER BY
mệnh đề như sau:
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
Trong phần trên, ASC|DESC
có nghĩa là bạn nên chọn từ khóa ASC
(tăng dần) hoặc DESC
(giảm dần) để sắp xếp tập dữ liệu theo cách bạn muốn.
Bên cạnh việc sắp xếp theo cột số, bạn cũng có thể sắp xếp theo cột văn bản. ORDER BY
mệnh đề sẽ sắp xếp các cột văn bản theo thứ tự bảng chữ cái.
Thay vì tên cột, bạn cũng có thể sử dụng vị trí của cột đếm từ bên trái. Vì vậy, trong ví dụ của chúng tôi, thay vì viết:
ORDER BY monthly_earnings DESC
bạn cũng có thể viết:
ORDER BY 3 DESC
Nếu bạn muốn sắp xếp bảng từ ví dụ theo first_name
theo thứ tự bảng chữ cái (tăng dần), bạn có thể sử dụng truy vấn sau:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
Cũng cần lưu ý rằng bạn có thể sắp xếp theo nhiều cột. Điều này rất hữu ích khi một số giá trị trong một cột nhất định được lặp lại và bạn cần sắp xếp bổ sung. Trong trường hợp này, hãy tách các tên cột bằng dấu phẩy trong mệnh đề ORDER BY.
Bạn thậm chí có thể sắp xếp theo thứ tự tăng dần của một cột và theo thứ tự giảm dần của cột khác. Sau đây minh họa cú pháp của sự kết hợp này:
ORDER BY Col1 ASC, Col2 DESC;
Nếu bạn bỏ qua ASC
hoặc DESC
từ khóa, sắp xếp tăng dần được thực hiện theo mặc định.