ORDER BY trong SQL – Lệnh sắp xếp trong SQL tăng hay giảm

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

Lọc không dùng ASC và DESC
Lọc không dùng ASC và DESC

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

Sử dụng lệnh ORDER BY DESC trong SQL
Sử dụng lệnh ORDER BY DESC trong SQL

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

Sử dụng cả ASC và DESC trong lệnh ORDER BY SQL
Sử dụng cả ASC và DESC trong lệnh ORDER BY SQL

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

Dùng ký tự 1 2 3 để đại diện cho từng cột
Dùng ký tự 1 2 3 để đại diện cho từng cột

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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *