Lệnh ORDER BY trong SQL: Cách sắp xếp dữ liệu từ A-Z
12/12/2025Trong SQL, lệnh ORDER BY là một công cụ mạnh mẽ cho phép bạn sắp xếp kết quả của các câu lệnh SELECT dựa trên các cột được chỉ định. Bài viết này, Viettel IDC sẽ cung cấp cái nhìn tổng quan toàn diện về lệnh ORDER BY trong SQL, bao gồm câu lệnh, ứng dụng và các ví dụ phổ biến.

Lệnh ORDER BY trong SQL là gì?
Lệnh ORDER BY trong SQL là mệnh đề được sử dụng để xác định thứ tự sắp xếp của tập kết quả trả về từ một câu lệnh SELECT.
Về mặt kỹ thuật, dữ liệu trong các bảng quan hệ được lưu trữ không theo thứ tự cố định. Do đó, ORDER BY là công cụ bắt buộc nếu người quản trị dữ liệu muốn đảm bảo tính nhất quán về thứ tự hiển thị của các bản ghi (hàng) dựa trên giá trị của một hoặc nhiều cột cụ thể.
Lệnh ORDER BY trong SQL được đặt ở cuối truy vấn, sau các lệnh WHERE , HAVING và GROUP BY (nếu có). Sau đây là một số điểm quan trọng chúng ta cần biết về ORDER BY:
- Hầu hết các cơ sở dữ liệu đều sắp xếp kết quả truy vấn theo thứ tự tăng dần theo mặc định.
- Sử dụng từ khóa ASC để chỉ định rõ thứ tự tăng dần.
- Sử dụng từ khóa DESC để sắp xếp theo thứ tự giảm dần.
Đặc biệt, khi định nghĩa nhiều cột trong mệnh đề ORDER BY, hệ thống sẽ thiết lập độ ưu tiên sắp xếp từ trái sang phải. Dữ liệu sẽ được sắp xếp theo cột đầu tiên; nếu tồn tại các giá trị trùng nhau, hệ thống mới xét tiếp đến cột thứ hai để phân định thứ tự.
Có thể bạn quan tâm:
- SQL là gì? Cách download và cài đặt SQL Server từ A - Z
- MariaDB và MySQL khác gì nhau? Nên sử dụng hệ quản trị nào?
Cú pháp lệnh ORDER BY trong SQL
Cấu trúc chuẩn của một câu lệnh ORDER BY trong SQL có sử dụng sắp xếp sẽ trông như sau:
SELECT Cot_A, Cot_B, ...
FROM Ten_Bang
ORDER BY Cot_A [ASC | DESC], Cot_B [ASC | DESC], ...];
Trong các truy vấn phức tạp, ORDER BY thường hoạt động song song với WHERE để tối ưu hóa kết quả hiển thị sau khi đã lọc dữ liệu. Nên một quy tắc bất biến đó là WHERE luôn phải đứng TRƯỚC ORDER BY.
SELECT Cot_A, Cot_B, ...
FROM Ten_Bang
WHERE Dieu_Kien_Loc
ORDER BY Cot_A, Cot_B, ... [ASC | DESC];
Để viết đúng câu lệnh ORDER BY trong SQL, bạn cần nắm rõ chức năng của 4 từ khóa chính:
- SELECT: Dùng để chỉ định những dữ liệu (cột) nào bạn muốn xem/phân tích. Dùng dấu sao * nếu muốn xem toàn bộ bảng.
- FROM: Chỉ định dữ liệu được lấy từ bảng nào.
- WHERE (Tùy chọn): Dùng để đặt ra tiêu chí lọc nhằm thu hẹp kết quả. Tại đây bạn có thể dùng các toán tử như =, LIKE, >, <.
- ORDER BY: Xác định cột dùng để sắp xếp kết quả. Nếu bạn không viết gì thêm, SQL mặc định hiểu là ASC (tăng dần). Muốn giảm dần, bạn bắt buộc phải viết thêm DESC.

Khi nào nên sử dụng lệnh ORDER BY trong SQL?
Thiết lập trật tự nhất quán cho kết quả truy vấn
Trong quy trình xử lý dữ liệu, lệnh ORDER BY trong SQL là bước chuyển hóa quan trọng từ "dữ liệu thô" sang "thông tin có cấu trúc". Về bản chất, các hệ quản trị cơ sở dữ liệu (DBMS) không bao giờ cam kết thứ tự trả về mặc định của các bản ghi.
Do đó, bạn cần kích hoạt mệnh đề này khi muốn áp đặt một "kỷ luật" cụ thể cho dữ liệu đầu ra. Nó đảm bảo tính nhất quán tuyệt đối, biến một danh sách hỗn độn thành một tập hợp tuân theo quy tắc (như tăng dần hoặc giảm dần) đúng với ý đồ của người lập trình.
Tối ưu hóa quy trình phân tích và báo cáo
Lệnh ORDER BY trong SQL là mắt xích không thể thiếu để chuẩn hóa dữ liệu trước khi đưa vào các báo cáo hoặc công cụ trực quan hóa. Việc sắp xếp dữ liệu giúp làm nổi bật các xu hướng hoặc các giá trị ngoại lai quan trọng.
Ví dụ, thay vì nhìn vào một bảng số liệu lộn xộn, việc sắp xếp doanh thu từ cao xuống thấp sẽ giúp nhà quản lý ngay lập tức nhận diện được đâu là sản phẩm chủ lực "Best seller" mà không cần tốn thời gian dò tìm thủ công trong hàng nghìn dòng dữ liệu.
Xây dựng logic hiển thị cho ứng dụng, web
Cuối cùng, mệnh đề này đóng vai trò cốt lõi trong việc truy xuất dữ liệu theo trình tự "có ý nghĩa" đối với trải nghiệm người dùng (UX). Hầu hết các logic phần mềm hiện đại đều cần dữ liệu tuân theo một dòng chảy nhất định.
Điển hình như các trang tin tức cần hiển thị bài viết mới nhất lên đầu (sắp xếp theo thời gian), hay các sàn thương mại điện tử cần chức năng lọc giá rẻ nhất (sắp xếp theo giá tiền). Tất cả các logic này đều dựa vào khả năng điều hướng dòng chảy dữ liệu của ORDER BY.
Ví dụ lệnh ORDER BY trong SQL
Để hiểu rõ cách ORDER BY vận hành, chúng ta hãy cùng thao tác trên một bảng dữ liệu giả lập có tên là HOC_SINH. Bảng này lưu trữ thông tin cá nhân của các học sinh bao gồm: Số báo danh (SBD), Tuổi (Tuoi), Họ tên (Ho_Ten), Địa chỉ (Dia_Chi) và Số điện thoại (SDT).
Dưới đây là dữ liệu ban đầu của bảng:
Ví dụ 1: Sắp xếp dựa trên một cột đơn lẻ
Trong ví dụ này, chúng ta sẽ truy xuất toàn bộ dữ liệu từ bảng HOC_SINH, nhưng yêu cầu kết quả phải được sắp xếp theo cột SBD theo thứ tự giảm dần. Đây là trường hợp thường gặp khi bạn muốn xem danh sách những học sinh mới nhất vừa được thêm vào hệ thống.
Câu lệnh ORDER BY trong SQL:
SELECT * FROM HOC_SINH
ORDER BY SBD DESC;
Bảng kết quả hiển thị:
Ví dụ 2: Sắp xếp ưu tiên dựa trên nhiều cột
Trong ví dụ nâng cao này, chúng ta sẽ truy xuất toàn bộ dữ liệu từ bảng HOC_SINH, nhưng áp dụng quy tắc sắp xếp phức tạp hơn:
Đầu tiên, sắp xếp theo độ Tuổi giảm dần. Tiếp theo, nếu có nhiều người cùng tuổi, hãy sắp xếp những người đó theo Tên tăng dần.
Để thực hiện điều này, chúng ta liệt kê các cột trong mệnh đề ORDER BY và ngăn cách chúng bằng dấu phẩy ,.
Câu lệnh ORDER BY trong SQL:
SELECT * FROM HOC_SINH
ORDER BY Tuoi DESC, Ho_Ten ASC;
Bảng kết quả:
Các khó khăn khi dùng lệnh ORDER BY trong SQL
Lỗi tên cột hoặc cột không tồn tại
Đây là lỗi sơ đẳng nhưng xảy ra thường xuyên nhất đối với lệnh ORDER BY trong SQL. Triệu chứng là hệ thống báo lỗi "Column not found" hoặc "Invalid identifier".
Lỗi này thường xảy ra do sơ suất đánh máy hoặc nhầm lẫn giữa chữ hoa và chữ thường nếu cơ sở dữ liệu có phân biệt. Để khắc phục, bạn chỉ cần kiểm tra kỹ lại tên cột trong mệnh đề ORDER BY xem đã khớp hoàn toàn với tên cột thực tế trong bảng dữ liệu hay chưa.
Lỗi trùng tên cột
Khi bạn dùng lệnh JOIN để kết nối nhiều bảng, nếu các bảng này có cột cùng tên (ví dụ đều có cột ID), SQL sẽ báo lỗi vì không biết bạn muốn sắp xếp theo ID của bảng nào.
Giải pháp là hãy luôn chỉ định rõ nguồn gốc của cột bằng cú pháp Ten_Bang.Ten_Cot. Ví dụ: thay vì viết ORDER BY ID, hãy viết ORDER BY HocSinh.ID để hệ thống hiểu chính xác ý định của bạn.
Rắc rối với giá trị rỗng NULL
Theo mặc định, SQL coi NULL là giá trị nhỏ nhất. Do đó, khi bạn sắp xếp tăng dần (ASC), các dòng dữ liệu trống sẽ tự động "nhảy" lên đầu danh sách, gây mất thẩm mỹ cho báo cáo.
Nếu muốn đẩy các giá trị NULL này xuống dưới cùng, bạn có thể dùng mẹo gán tạm cho nó một giá trị lớn bằng hàm ISNULL() hoặc COALESCE(). Một số hệ quản trị hiện đại (như Oracle, PostgreSQL) hỗ trợ từ khóa NULLS LAST để xử lý việc này nhanh hơn.
Lệnh ORDER BY trong SQL không chỉ là một lệnh sắp xếp đơn thuần, mà là công cụ quyền lực giúp bạn chuyển hóa dữ liệu thô thành thông tin có cấu trúc và dễ khai thác. Qua bài hướng dẫn này, Viettel IDC hy vọng bạn đã nắm vững cú pháp chuẩn và cách vận dụng linh hoạt các chế độ sắp xếp trên một hoặc nhiều cột. Chúc bạn thao tác thành công với SQL!
Để được hỗ trợ tư vấn và tìm hiểu các dịch vụ của Viettel, bạn có thể liên hệ trực tiếp tới Viettel IDC qua các kênh:
- Hotline: 1800 8088 (miễn phí cước gọi)
- Fanpage: https://www.facebook.com/viettelidc
Tin nổi bật
Tin liên quan
Cổng SATA là gì? Cách nhận biết và kết nối ổ HDD, SSD
Cổng SATA là gì? Cách nhận biết cổng SATA trên mainboard, phân biệt các phiên bản và kiểm tra ổ HDD, SSD có tương thích trước khi nâng cấp.
Microsoft Publisher là gì? Tổng quan về phần mềm thiết kế dàn trang
Microsoft Publisher là gì? Đây là phần mềm dàn trang của Microsoft, hỗ trợ thiết kế ấn phẩm bằng các mẫu có sẵn và công cụ sắp xếp văn bản, hình ảnh linh hoạt.
Có nên sử dụng các công cụ Text to speech miễn phí? Ưu điểm và hạn chế
Có nên sử dụng các công cụ Text to Speech miễn phí? Cân nhắc chất lượng giọng đọc, hạn mức và quyền sử dụng để biết khi nào bản miễn phí đủ dùng hoặc cần nâng cấp.
Kiến trúc Client Server là gì? Cách mô hình máy chủ - máy khách hoạt động
Kiến trúc Client Server là gì? Đây là mô hình máy khách - máy chủ, tổ chức việc gửi yêu cầu, xử lý và trao đổi dữ liệu trong các ứng dụng và dịch vụ mạng.
Cấu trúc silo là gì trong SEO? Cách xây dựng cấu trúc silo cho website
Cấu trúc silo là gì? Nắm rõ cách phân nhóm nội dung, phân biệt silo vật lý và silo ảo để xây dựng website dễ điều hướng, thuận tiện quản lý và hỗ trợ SEO.
Top 15 các phần mềm quay lại màn hình miễn phí cho máy tính và điện thoại
Các phần mềm quay lại màn hình miễn phí giúp bạn ghi hình rõ nét, lưu lại thao tác và tạo video hướng dẫn trực quan cho nhu cầu học tập, làm việc hằng ngày.
Postfix là gì? Hướng dẫn cài đặt và cấu hình trên Ubuntu
Postfix là gì được giải đáp qua vai trò của phần mềm chuyển thư mã nguồn mở, giúp doanh nghiệp chủ động quản lý luồng email và cấu hình hệ thống trên Linux.
Cách quét mã độc cho website WordPress và lưu ý bảo mật cần biết
Cách quét mã độc cho website WordPress giúp phát hiện tệp đáng ngờ, xác định dấu vết xâm nhập và hỗ trợ xử lý sớm nguy cơ ảnh hưởng đến dữ liệu, người truy cập.
Top 20 các plugin hữu ích cho WordPress tốt nhất nên cài đặt
Các plugin hữu ích cho WordPress giúp mở rộng chức năng sẵn có của website, cải thiện trải nghiệm người dùng và đơn giản hóa công việc quản trị hằng ngày.
Hướng dẫn cài đặt các ứng dụng trên Ubuntu cho người mới
Hướng dẫn cài đặt các ứng dụng trên Ubuntu chi tiết từng bước, giúp người mới dễ dàng thao tác từ tải phần mềm, thiết lập gói cài đến khởi chạy ứng dụng.
Bình luận ()