Mệnh đề ORDER BY trong SQL thường được sử dụng để sắp xếp kết quả theo thứ tự tăng hoặc giảm dần. Oracle tự động sắp xếp kết quả theo thứ tự tăng dần.
Cú pháp Mệnh đề ORDER BY trong SQL để sắp xếp dữ liệu
LỰA CHỌN danh sách-cột
TỪ tên_bảng [NẾU điều_kiện]
[SẮP XẾP THEO cột1 [, cột2, .. cộtN] [GIẢM DẦN]];
Ví dụ về Mệnh đề ORDER BY trong SQL
Dưới đây là dữ liệu của đội ngũ nhân viên:
Muốn sắp xếp bảng nhân viên theo mức lương, lệnh ORDER BY trong SQL sẽ như sau:
CHỌN tên, lương TỪ nhân_viên SẮP XẾP THEO lương;
Kết quả xuất hiện như bên dưới:
Truy vấn đầu tiên để sắp xếp kết quả theo tên và hiển thị kết quả.
Bên cạnh đó, bạn cũng có thể sử dụng nhiều cột trong mệnh đề ORDER BY trong SQL.
Nếu muốn sắp xếp bảng nhân viên theo tên và lương, truy vấn ORDER BY trong SQL sẽ là:
CHỌN tên, lương TỪ nhân_viên SẮP XẾP THEO tên, lương;
Kết quả xuất hiện như bên dưới:
Chú ý khi sử dụng mệnh đề ORDER BY trong SQL
Các cột được chỉ định trong mệnh đề ORDER BY phải là một trong số các cột được chọn trong danh sách SELECT.
Bạn có thể xác định vị trí của một cột trong danh sách SELECT để đại diện cho các cột trong mệnh đề ORDER BY, thay vì phải viết tên cột.
Các truy vấn trên cũng có thể được biểu diễn như sau:
SELECT name, salary FROM employee ORDER BY 1, 2;
Mặc định, mệnh đề ORDER BY trong SQL sẽ sắp xếp dữ liệu theo thứ tự tăng dần. Để sắp xếp theo thứ tự giảm dần, bạn cần chỉ định rõ trong truy vấn dưới đây:
SELECT name, salary
KHI TỪ employee
ORDER BY name, salary DESC;
Truy vấn ORDER BY trong SQL trên sẽ sắp xếp cột lương theo thứ tự giảm dần và cột tên theo thứ tự tăng dần.
Nếu muốn sắp xếp nhân viên theo tên và mức lương theo thứ tự giảm dần, truy vấn ORDER BY trong SQL có thể viết như sau:
CHỌN tên, lương
TỪ nhân_viên
SẮP XẾP THEO tên DESC, lương DESC
Sử dụng biểu thức trong mệnh đề ORDER BY trong SQL
Các biểu thức trong mệnh đề ORDER BY của SQL được áp dụng trong câu lệnh SELECT.
Ví dụ: Nếu muốn hiển thị tên, mức lương hiện tại, và tăng 20% lương cho những nhân viên có mức lương trên 30000 theo thứ tự giảm dần, câu lệnh SELECT sẽ như sau:
SELECT name, salary, salary*1.2 AS new_salary
TỪ nhân_viên
WHERE salary*1.2 > 30000
ORDER BY new_salary DESC;
Kết quả của truy vấn là như sau:
Trong bài viết này, Mytour đã giới thiệu về mệnh đề ORDER BY trong SQL. Bài viết tiếp theo sẽ đề cập đến VIEW, GRANT, ... trong SQL, và đặc biệt là Lệnh CREATE trong SQL. Mời các bạn theo dõi.
Bên cạnh đó, bạn cũng có thể khám phá thêm nhiều bài viết liên quan đến SQL, SQL Server, như cách tạo, kiểm tra, và thay đổi cột Identity trên Microsoft SQL Server để mở rộng hiểu biết về ngôn ngữ này cũng như môi trường quản trị dữ liệu. Chúc các bạn đạt được nhiều thành công!