Lệnh ORDER BY trong SQL thường sử dụng trong câu lệnh SELECT dùng để sắp xếp tăng hoặc giảm dần. Tham khảo bài viết sau để hiểu cách dùng mệnh đề SQL này.
1/ Mô tả SQL ORDER BY
ORDER BY trong SQL dùng để sắp xếp theo thứ tự tăng hoặc giảm dần, thể hiện qua hai lệnh ASC và DESC.
- DESC được sử dụng để sắp xếp dữ liệu tăng dần. Viết tắt của từ tiếng Anh Descending có nghĩa là giảm dần.
- ASC được sử dụng để sắp xếp dữ liệu giảm dần. Viết tắt của từ tiếng Anh Ascending có nghĩa là tăng dần.
Như ở bài SELECT TOP mà Kienit có đề cập tới, ORDER BY sẽ sắp xếp thứ tự trước để giúp bạn lấy top n dữ liệu cao nhất hoặc thấp nhất.
2/ Cú pháp ORDER BY SQL
SELECT danh_sach_cot
FROM ten_bang
[WHERE dieu_kien]
[ORDER BY cot1, cot2, .. cotN] [ASC | DESC]
Lưu ý:
Nếu bạn không chọn lệnh ASC hay DESC thì mặc định mệnh đề SQL này sẽ sắp xếp theo thứ tự tăng dần, giống như ORDER BY ASC.
Cột được chọn để sắp xếp phải nằm trong câu lệnh SELECT
Cách hoạt động của lệnh này trong câu lệnh SELECT SQL như sau:
- Bước 1: Chạy mệnh đề FROM để tìm bảng
- Bước 2: Xem xét điều kiện ở mệnh đề WHERE để lọc
- Bước 3: Mệnh đề ORDER BY trong SQL sẽ sắp xếp tăng hoặc giảm dần
- Bước 4: In ra các cột đã chọn ở mệnh đề SELECT
3/ Ví dụ cách sử dụng
Chia sẻ các ví dụ cơ bản về cách sử dụng mệnh đề ORDER BY SQL.
Lọc không dùng ASC và DESC
Ví dụ: Không dùng lệnh ASC và DESC
SELECT product_id, product_name, net_sales
FROM sales
WHERE net_sales > 0
ORDER BY net_sales

Sắp theo tăng hoặc giảm
Nếu bạn dùng lệnh ASC thì kết quả trả về cũng sẽ giống như bạn không dùng còn nếu dùng lệnh ORDER BY DESC thì kết quả trả về sẽ như sau
SELECT product_id, product_name, net_sales
FROM sales
WHERE net_sales > 0
ORDER BY net_sales DESC

Dùng cả ASC và DESC
Nếu trong mệnh đề bạn muốn sắp xếp cột A tăng và cột B giảm dần thì làm như sau
Ví dụ:
SELECT product_id, product_name, net_sales
FROM sales
WHERE net_sales > 0
ORDER BY product_name ASC , net_sales DESC

Dùng ký tự đại diện
Bạn có thể xác định vị trí của từng cột trong câu lệnh SELECT từ trái sang phải là 1, 2, …. Số 1 hoặc 2 là đại diện cho từng cột thay vì bạn phải ghi lại tên cột một lần nữa.
Ví dụ:
SELECT product_id, product_name, net_sales
FROM sales
WHERE net_sales > 0
ORDER BY 3 ASC

Trong đó số 3 trong câu lệnh SQL sẽ dại diện cho cột net_sales.
Qua các thông tin ở trên thì chắc các bạn đã hết thắc mắc ORDER BY là gì rồi đúng không. Câu lệnh sắp xếp trong SQL được sử dụng rất nhiều, vì vậy khi nắm được kiến thức cơ bản thì bạn cần áp dụng thật nhiều để quen cách sử dụng.
Nhiều bạn mới khi tìm hiểu tìm hiểu về SQL sẽ dễ nhầm lẫn giữa GROUP BY và ORDER BY. Trong các bài viết tiếp theo, Kienit sẽ chia sẻ về lệnh GROUP BY, các bạn hãy theo dõi nha.