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

Lệnh ORDER BY trong SQL là một công cụ mạnh mẽ được sử dụng để sắp xếp dữ liệu trong câu lệnh SELECT theo thứ tự tăng hoặc giảm dần. Với một vài thay đổi nhỏ, bạn có thể thay đổi cách mà dữ liệu được hiển thị, giúp bạn tối ưu hóa trải nghiệm người dùng.

1/ Mô tả lệnh ORDER BY SQL

Lệnh ORDER BY SQL giúp bạn sắp xếp dữ liệu theo thứ tự tăng hoặc giảm dần. Điều này được thể hiện qua hai lệnh ASC và DESC:

  • DESC: Sắp xếp dữ liệu theo thứ tự giảm dần.
  • ASC: Sắp xếp dữ liệu theo thứ tự tăng dần.

Lệnh ORDER BY sẽ giúp bạn lấy top n dữ liệu cao nhất hoặc thấp nhất, như Kienit đã đề cập trong bài viết SELECT TOP trước đó.

2/ Cú pháp của lệnh ORDER BY SQL

Cú pháp căn bản của lệnh ORDER BY SQL như sau:

SELECT danh_sach_cot
FROM ten_bang
[WHERE dieu_kien]
[ORDER BY cot1, cot2, .. cotN] [ASC | DESC]

Các lưu ý quan trọng khi sử dụng lệnh ORDER BY SQL:

  • Nếu không chỉ định lệnh ASC hoặc DESC, mặc định dữ liệu sẽ được 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.

3/ Ví dụ cách sử dụng lệnh ORDER BY SQL

Dưới đây là một vài ví dụ cơ bản về cách sử dụng lệnh ORDER BY SQL:

Lọc không sử dụng 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
Hình ảnh: Sử dụng lệnh ORDER BY DESC trong SQL

Sắp theo thứ tự tăng hoặc giảm

Nếu bạn sử dụng lệnh ASC, kết quả trả về sẽ giống như không sử dụng lệnh. Nếu bạn sử dụng lệnh ORDER BY DESC, kết quả trả về sẽ sắp xếp theo thứ tự giảm dần.

SELECT product_id, product_name, net_sales
FROM sales
WHERE net_sales > 0
ORDER BY net_sales DESC

Sử dụng cả ASC và DESC

Nếu bạn muốn sắp xếp cột A tăng dần và cột B giảm dần, bạn có thể sử dụng cả hai lệnh như sau:

SELECT product_id, product_name, net_sales
FROM sales
WHERE net_sales > 0
ORDER BY product_name ASC, net_sales DESC

Sử 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 bằng các số 1, 2, 3, thay vì ghi lại tên cột một lần nữa.

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
Hình ảnh: Dùng ký tự 1 2 3 để đại diện cho từng cột

Qua các thông tin ở trên, chắc chắn bạn đã hiểu rõ lệnh ORDER BY trong SQL là gì. Với kiến thức cơ bản này, bạn có thể áp dụng vào thực tế để sắp xếp dữ liệu một cách linh hoạt và tiện lợi. Hãy cùng theo dõi các bài viết tiếp theo của Kienit để tìm hiểu thêm về các lệnh khác như GROUP BY.

FEATURED TOPIC