Mệnh đề ORDER BY trong SQL được sử dụng trong lệnh SELECT để sắp xếp các kết quả theo thứ tự tăng dần hoặc giảm dần. Oracle sắp xếp các kết quả truy vấn theo thứ tự tăng dần theo mặc định.
Cú pháp mệnh đề ORDER BY trong SQL để sắp xếp dữ liệu
SELECT column-list
FROM table_name [WHERE condition]
[ORDER BY column1 [, column2, .. columnN] [DESC]];
Ví dụ mệnh đề ORDER BY trong SQL
Dưới đây là bảng dữ liệu nhân viên:
Nếu muốn sắp xếp bảng danh sách nhân viên theo mức lương , lệnh ORDER BY trong SQL được viết như sau:
SELECT name, salary FROM employee ORDER BY salary;
Đầu ra có dạng như dưới đây:
Truy vấn đầu tiên sắp xếp kết quả theo tên và hiển thị kết quả.
Ngoài ra ban 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 là:
SELECT name, salary FROM employee ORDER BY name, salary;
Đầu ra có dạng như dưới đây:
Lưu ý với mệnh đề ORDER BY trong SQL
Các cột được chỉ định trong mệnh đề ORDER BY là một trong số các cột được chọn trong danh sách cột 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 viết dưới dạng:
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. Nếu muốn sắp xếp theo thứ tự giảm dần, bạn phải chỉ định rõ ràng như trong truy vấn dưới đây:
SELECT name, salary
FROM employee
ORDER BY name, salary DESC;
Truy vấn ORDER BY trong SQL trên chỉ 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 viết như sau:
SELECT name, salary
FROM employee
ORDER BY name DESC, salary 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 trong SQL được sử dụng trong lệnh SELECT.
Ví dụ: Nếu muốn hiển thị tất cả tên nhân viên, mức lương hiện tại và chỉ 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, lệnh SELECT sẽ được viết như dưới đây:
SELECT name, salary, salary*1.2 AS new_salary
FROM employee
WHERE salary*1.2 > 30000
ORDER BY new_salary DESC;
Đầu ra của truy vấn trên như dưới đây:
Trên đây Taimienphi.vn vừa giới thiệu cho bạn về mệnh đề ORDER BY trong SQL. Trong bài viết tiếp theo, Taimienphi.vn sẽ giới thiệu tiếp cho bạn về VIEW, GRANT, ... trong SQL., và đặc biệt là Lệnh CREATE trong SQL, mời các bạn theo dõi.
Ngoài ra, bạn có thể tìm hiểu thêm một số 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 để nắm thêm kiến thức về ngôn ngữ cũng như môi trường quản trị dữ liệu này nhé. Chúc các bạn thành công !