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

20/10/2026

Viettel IDC dẫn đầu bảng xếp hạng Enterprise of Choice 2026 tại nhiều hạng mục quan trọng

Viettel IDC đạt 6 thứ hạng nổi bật tại Enterprise of Choice 2026, trong đó có 5 vị trí Top 1 ở các hạng mục về công nghệ thông tin, phát triển bền vững, doanh nghiệp được yêu thích bởi người lao động, lãnh đạo và thế hệ trẻ. Kết quả ghi nhận những nỗ lực của doanh nghiệp trong xây dựng môi trường làm việc tích cực, lấy con người làm trung tâm.

20/10/2026

So sánh các dịch vụ cloud backup phổ biến tại Việt Nam

So sánh các dịch vụ cloud backup phổ biến tại Việt Nam về phạm vi sao lưu, bảo mật, khôi phục, chi phí và mô hình triển khai để doanh nghiệp dễ lựa chọn.

20/10/2026

Dịch vụ lưu trữ đám mây nào tốt nhất cho doanh nghiệp nhỏ 2026? 9 lựa chọn nên tham khảo

So sánh 9 dịch vụ lưu trữ đám mây cho doanh nghiệp nhỏ năm 2026: công cụ chia sẻ file, Object Storage trong nước và quốc tế, kèm tiêu chí chọn nhà cung cấp.

20/10/2026

Mua chứng chỉ SSL cho website ở đâu uy tín? 5 kênh mua và triển khai

Có 5 kênh mua và triển khai chứng chỉ SSL cho website: CA, đại lý trong nước, nhà cung cấp hosting, nhà đăng ký tên miền và CA miễn phí. Xem ưu nhược điểm và cách kiểm tra nơi bán uy tín.

20/10/2026

Lưu trữ ngoài có an toàn không? Rủi ro và cách bảo vệ dữ liệu doanh nghiệp

Lưu trữ dữ liệu bên ngoài có an toàn không? Phân tích rủi ro, các lớp bảo vệ cần có và tiêu chí chọn nhà cung cấp cho doanh nghiệp.

19/10/2026

VDS là gì? VDS khác VPS và Dedicated Server như thế nào?

VDS là gì, khác VPS và Dedicated Server ở điểm nào, ưu nhược điểm và trường hợp nên sử dụng.

19/10/2026

Cách triển khai observability cho ứng dụng đám mây và microservices như thế nào

Hướng dẫn triển khai observability cho ứng dụng đám mây và microservices qua 7 bước, từ xác định SLI/SLO đến tối ưu chi phí telemetry.

19/10/2026

Top nhà cung cấp dịch vụ Dedicated Server giá tốt, tốc độ ổn định tại Việt Nam

Tổng hợp các nhà cung cấp Dedicated Server tại Việt Nam, so sánh mô hình dịch vụ, cấu hình, Data Center, uptime, băng thông và giá công bố.

19/10/2026

Top nhà cung cấp dịch vụ Hosting và VPS uy tín tại Việt Nam

Top nhà cung cấp Hosting và VPS uy tín tại Việt Nam. So sánh hạ tầng, uptime, loại dịch vụ và các tiêu chí cần kiểm tra trước khi lựa chọn.

19/10/2026

Thuê Cloud GPU có đắt không?

Thuê Cloud GPU có đắt không phụ thuộc vào yếu tố nào? Phân tích các mô hình tính phí, chi phí ẩn và cách tối ưu ngân sách khi dùng GPU đám mây.