Tuyển dụng
Viettel IDC

Lệnh ORDER BY trong SQL: Cách sắp xếp dữ liệu từ A-Z

12/12/2025

Trong 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à 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.

Cú pháp lệnh ORDER BY trong SQL

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:

SBD

Tuoi

Ho_Ten

Dia_Chi

SDT

1

18

Nguyễn Văn An

123 Đường Láng, Hà Nội

0901234561

2

18

Trần Thị Bình

321 Cầu Giấy, Hà Nội

0901234562

3

19

Lê Văn Cường

567 Nguyễn Trãi, TP.HCM

0901234563

4

19

Phạm Minh Dũng

456 Lê Duẩn, Đà Nẵng

0901234564

5

20

Hoàng Thị Em

789 Ninh Kiều, Cần Thơ

0901234565

6

21

Vũ Văn Giang

246 Lạch Tray, Hải Phòng

0901234566

7

22

Đặng Thị Hương

369 Yersin, Đà Lạt

0901234567

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ị:

SBD

Tuoi

Ho_Ten

Dia_Chi

SDT

7

22

Đặng Thị Hương

369 Yersin, Đà Lạt

0901234567

6

21

Vũ Văn Giang

246 Lạch Tray, Hải Phòng

0901234566

5

20

Hoàng Thị Em

789 Ninh Kiều, Cần Thơ

0901234565

4

19

Phạm Minh Dũng

456 Lê Duẩn, Đà Nẵng

0901234564

3

19

Lê Văn Cường

567 Nguyễn Trãi, TP.HCM

0901234563

2

18

Trần Thị Bình

321 Cầu Giấy, Hà Nội

0901234562

1

18

Nguyễn Văn An

123 Đường Láng, Hà Nội

0901234561

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ả:

SBD

Tuổi

Họ Tên

Địa Chỉ

SĐT

7

22

Đặng Thị Hương

369 Yersin, Đà Lạt

0901234567

6

21

Vũ Văn Giang

246 Lạch Tray, Hải Phòng

0901234566

5

20

Hoàng Thị Em

789 Ninh Kiều, Cần Thơ

0901234565

3

19

Lê Văn Cường

567 Nguyễn Trãi, TP.HCM

0901234563

4

19

Phạm Minh Dũng

456 Lê Duẩn, Đà Nẵng

0901234564

1

18

Nguyễn Văn An

123 Đường Láng, Hà Nội

0901234561

2

18

Trần Thị Bình

321 Cầu Giấy, Hà Nội

0901234562

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  

Bình luận ()

Đăng nhập | Đăng ký
để gửi bình luận
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Xem thêm bình luận

Tin liên quan

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.

09/11/2026

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.