Câu lệnh ORDER BY trong SQL, cách dùng kèm ví dụ chi tiết

Nội dung được viết bởi Kim Thu

Thao tác sắp xếp lại bảng dữ liệu theo điều kiện mong muốn xảy ra thường xuyên trong quá trình lọc và truy vấn dữ liệu trong SQL. Để làm điều đó, bạn sẽ cần sử dụng một loại từ khóa có tên ORDER BY để sắp xếp thông tin theo một hay nhiều trường dữ liệu khác nhau. 

Vậy từ khóa ORDER BY trong SQL là gì, cú pháp câu lệnh như nào, cách dùng ra sao? Cùng Gitiho tìm hiểu trong bài viết hôm nay nhé!

Cú pháp ORDER BY trong SQL

ORDER BY là một từ khóa được sử dụng trong SQL để sắp xếp các kết quả của truy vấn theo một hoặc nhiều cột. Bạn có thể sắp xếp dữ liệu theo thứ tự tăng dần (ASC) hoặc giảm dần (DESC) theo dữ liệu kiểu chữ, kiểu số, ngày tháng,... hay đặt ra những trường cần sắp xếp trước trong trường hợp bạn muốn sắp xếp theo nhiều trường dữ liệu.

Với câu lệnh liên quan đến sắp xếp dữ liệu thì chúng ta vẫn cần đến nhóm lệnh SELECT trong SQL, sau đó chúng ta có thể đặt ra những điều kiện (nếu có), rồi mới đến câu lệnh ORDER BY. Cụ thể:

SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;

Trong đó: 

  • SELECT column1, column2, ...: Chọn các cột cần truy vấn.
  • FROM table_name: Chỉ định bảng chứa dữ liệu.
  • WHERE condition: (Tùy chọn) Điều kiện lọc các hàng cần truy vấn.
  • [ASC|DESC]: Tùy chọn sắp xếp theo thứ tự tăng dần (ASC) hoặc giảm dần (DESC). Nếu không chỉ định, SQL sẽ mặc định sẽ là tăng dần (ASC). Còn nếu bạn muốn sắp xếp giảm dần thì bắt buộc phải sử dụng ký hiệu DESC trong SQL.

Lưu ý:

Thường thì từ khóa ORDER BY thì sẽ được đặt ở phần cuối câu lệnh để sắp xếp. Còn phần trước của câu lệnh thì bạn có thể tìm kiếm, tính toán, hay lọc ra những bản ghi phù hợp.

Ví dụ về sắp xếp trong SQL Server bằng ORDER BY

Ví dụ cơ bản về từ khóa ORDER BY

Để hiểu rõ hơn về cách sử dụng từ khóa ORDER BY trong SQL thì bạn có thể tham khảo một số ví dụ thực tế dưới đây và thực hành ngay trên cơ sở dữ liệu của mình nhé.

Yêu cầu 1: Sắp xếp toàn bộ bản ghi trong bảng dữ liệu Customer_Info theo thứ tự tăng dần với trường FirstName.

Bạn gõ câu lệnh sau:

Select * from Customer_Info
ORDER BY FirstName

Cho chạy công thức, bạn sẽ nhận được kết quả toàn bộ các bản ghi đã được sắp xếp tăng dần SQL (A - Z) của cột FirstName.

Ví dụ cơ bản về từ khóa ORDER BY 1

Yêu cầu 2: Sắp xếp toàn bộ bản ghi trong bảng Customer_Info theo thứ tự giảm dần của trường BirthDate.

Tương tự, chúng ta có câu lệnh sau:

select * from Customer_Info
ORDER BY BirthDate DESC

Bấm chạy công thức thì chúng ta sẽ nhận được toàn bộ thông tin đã được sắp xếp theo thứ tự ngày sinh gần nhất so với hiện tại.

Ví dụ cơ bản về từ khóa ORDER BY 2

Với 2 ví dụ đơn giản trên, bạn hoàn toàn có thể thấy cách sử dụng ORDER BY hoàn toàn đơn giản. Nó sẽ là từ khóa để bổ trợ cho những câu lệnh để thực hiện các yêu cầu phức tạp hơn, hay bối cảnh mà chúng ta cần sắp xếp để có thể thấy được sự thay đổi của dữ liệu theo từng giai đoạn.

Ví dụ câu lệnh ORDER BY với mệnh đề điều kiện WHERE

Với các yêu cầu sắp xếp có thêm một số điều kiện khác thì chúng ta sẽ không sắp xếp toàn bộ bản ghi nữa. Bạn chỉ chọn ra những dữ liệu thỏa mãn điều kiện với câu lệnh WHERE trong SQL. Sau đó, chúng ta sẽ tiếp tục tiến hành sắp xếp các bản ghi như mong muốn.

Yêu cầu 3: Sắp xếp toàn bộ bản ghi có giới tính là “M” trong bảng Customer_Info với thứ tự giảm dần theo thu nhập hàng năm.

Công thức:

select * from Customer_Info
where Gender = 'M'
ORDER BY YearlyIncome DESC

Cho chạy công thức, chúng ta sẽ nhận được toàn bộ 946 bản ghi có giới tính “M” đã được sắp xếp theo thu nhập giảm dần.

Ví dụ câu lệnh ORDER BY với mệnh đề điều kiện WHERE 1

Câu lệnh ORDER BY để sắp xếp dữ liệu trong nhiều cột

Yêu cầu 4 (Nâng cao): Lọc tất cả các khách hàng có ít nhất 1 xe ô tô và sắp xếp trường ô tô này theo thứ tự giảm dần. Trong trường hợp có cùng số ô tô thì chúng ta cần phải sắp xếp thêm trường FirstName theo thứ tự tăng dần.

Chúng ta có công thức sau:

select * from Customer_Info
where NumberCarsOwnerd >=1
ORDER BY NumberCarsOwned DESC, FirstName

Lưu ý: Trong trường hợp có nhiều trường thì chúng ta sử dụng dấu phẩy để ngăn cách.

Cho chạy công thức, chúng ta có thể thấy các bản ghi có nhiều hơn 1 xe ô tô, sắp xếp theo thứ tự giảm dần. Những bản ghi có cùng số xe ô tô sẽ được sắp xếp theo thứ tự tăng dần trong bảng chữ cái như sau:

Câu lệnh ORDER BY để sắp xếp dữ liệu trong nhiều cột 1

Yêu cầu 5: Sắp xếp toàn bộ giao dịch bán hàng trong bảng Sales theo thứ tự tăng dần của trường CustomerID. Trong trường hợp có cùng customerID thì hãy sắp xếp theo thứ tự sales amount giảm dần.

Ta có công thức:

select * from Sales
ORDER BY CustomerID, Sales DESC

Chạy công thức, chúng ta đã nhận được các bản ghi được sắp xếp theo thứ tự tăng dần của trường CustomerID, với những CustomerID trùng nhau thì sẽ được sắp xếp giảm dần của trường Sales.

Câu lệnh ORDER BY để sắp xếp dữ liệu trong nhiều cột 2

Lưu ý: Trong cơ sở dữ liệu này, chúng ta có tên bảng với tên trường dữ liệu giống nhau, đều là Sales. Do đó, chúng ta phải rất cẩn thận khi gõ công thức để không nhầm lẫn chúng. Khi gõ tên Sales thì SQL sẽ hiện ra cả tên bảng là Salestên trường là Sales, bạn hãy click chọn đúng nhé.

Câu lệnh ORDER BY để sắp xếp dữ liệu trong nhiều cột 3

Để hiểu rõ hơn về cách sử dụng từ khóa ORDER BY cùng các câu lệnh trong SQL từ cơ bản đến nâng cao, bạn có thể  tham khảo khóa học cơ sở dữ liệu sau tại Gitiho:

Kết luận

Trên đây là hướng dẫn về câu lệnh ORDER BY trong SQL bao gồm công thức và ví dụ chi tiết từ cơ bản đến nâng cao. Nếu bạn còn gặp khó khăn gì trong quá trình sắp xếp dữ liệu với từ khóa ORDER BY thì đừng ngần ngại để lại câu hỏi cho Gitiho ngay bạn nhé. Chúc bạn thành công!

Xem thêm: 

Cách dùng toán tử IN và NOT IN trong SQL, kèm ví dụ

Toán tử điều kiện BETWEEN trong SQL

Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.

Đăng ký học thử để trải nghiệm ngay hôm nay!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông