Lệnh ORDER BY trong SQL
Order by trong SQL là một lệnh rất thông dụng. Bài viết sẽ hướng bạn chi tiết cách dùng câu lệnh Order by trong SQL.
ORDER BY trong SQL là gì?
Lệnh ORDER BY trong SQL được dùng để phân loại dữ liệu theo thứ tự tăng hoặc giảm dần, dựa trên một hoặc nhiều cột. Mệnh đề này có thể phân loại dữ liệu theo một cột hoặc nhiều cột. Phân loại theo nhiều cột có thể hữu ích khi bạn cần phân loại dữ liệu theo thứ bậc, chẳng hạn như phân loại theo bang, thành phố, rồi tới tên người.
ORDER BY được dùng với lệnh SQL SELECT và thường đứng sau WHERE, HAVING và GROUP BY.
Những điểm quan trọng về câu lệnh sắp xếp trong SQL:
- Một số database phân loại kết quả truy vấn mặc định theo thứ tự tăng dần.
- Để phân loại dữ liệu theo thứ tự tăng dần, bạn dùng từ khóa ASC.
- Để phân loại dữ liệu theo thứ tự giảm dần, dùng từ khóa DESC.
Ngoài việc phân loại bản ghi theo thứ tự tăng hoặc giảm dần, mệnh đề ORDER BY đều có thể phân loại dữ liệu trong bảng database theo thứ tự lập trình viên muốn.
Cú pháp lệnh ORDER BY trong SQL
Cú pháp cơ bản của lệnh ORDER BY với câu lệnh SELECT sẽ như sau:
SELECT danhsach_cot
FROM ten_bang
[WHERE dieu_kien]
[ORDER BY cot1, cot2, .. cotN] [ASC | DESC];
Lưu ý:
- Nếu không chọn cụ thể ASC hay DESC trong mệnh đề ORDER BY thì kết quả sẽ mặc định được sắp xếp theo thứ tự tăng dần, tương đương với [ORDER BY cot1, cot2, .. cotN] [ASC].
Ví dụ về ORDER BY trong SQL
Giả sử bảng NHANVIEN có các bản ghi như sau:
+----+----------+-----+-----------+----------+ | ID | TEN |TUOI | DIACHI | LUONG | +----+----------+-----+-----------+----------+ | 1 | Thanh | 32 | Haiphong | 2000.00 | | 2 | Loan | 25 | Hanoi | 1500.00 | | 3 | Nga | 23 | Hanam | 2000.00 | | 4 | Manh | 25 | Hue | 6500.00 | | 5 | Huy | 27 | Hatinh | 8500.00 | | 6 | Cao | 22 | HCM | 4500.00 | | 7 | Lam | 24 | Hanoi | 10000.00 | +----+----------+-----+-----------+----------+
Ví dụ sau minh họa cách sắp xếp theo thứ tự tăng dần cho TEN và LUONG.
SELECT * FROM NHANVIEN
ORDER BY TEN, LUONG;
Ví dụ trên trả về kết quả:
+----+----------+-----+-----------+----------+
| ID | TEN |TUOI | DIACHI | LUONG |
+----+----------+-----+-----------+----------+
| 6 | Cao | 22 | HCM | 4500.00 |
| 5 | Huy | 27 | Hatinh | 8500.00 |
| 7 | Lam | 24 | Hanoi | 10000.00 |
| 2 | Loan | 25 | Hanoi | 1500.00 |
| 4 | Manh | 25 | Hue | 6500.00 |
| 3 | Nga | 23 | Hanam | 2000.00 |
| 1 | Thanh | 32 | Haiphong | 2000.00 |
+----+----------+-----+-----------+----------+
Khối lệnh sau sẽ sắp xếp kết quả theo thứ tự giảm dần bởi trường TEN.
SELECT * FROM NHANVIEN
ORDER BY TEN DESC;
Kết quả trả về là:
+----+----------+-----+-----------+----------+
| ID | TEN |TUOI | DIACHI | LUONG |
+----+----------+-----+-----------+----------+
| 1 | Thanh | 32 | Haiphong | 2000.00 |
| 3 | Nga | 23 | Hanam | 2000.00 |
| 4 | Manh | 25 | Hue | 6500.00 |
| 2 | Loan | 25 | Hanoi | 1500.00 |
| 7 | Lam | 24 | Hanoi | 10000.00 |
| 5 | Huy | 27 | Hatinh | 8500.00 |
| 6 | Cao | 22 | HCM | 4500.00 |
+----+----------+-----+-----------+----------+
Câu lệnh ORDER BY với mệnh đề WHERE
Bạn có thể dùng mệnh đề WHERE với lệnh sắp xếp trong SQL để chỉ phân loại các hàng đáp ứng điều kiện cụ thể. Điều này có thể hữu ích khi bạn muốn phân loại một tệp dữ liệu phụ trong bảng dựa trên tiêu chí cụ thể.
Ví dụ:
Giả sử bạn đang cố gắng để truy xuất tất cả bảng ghi từ bảng CUSTOMERS mà tuổi của khách khàng là 25 và phân loại chúng theo thứ tự giảm dần dựa theo tên:
SELECT * FROM CUSTOMERS
WHERE AGE = 25
ORDER BY NAME DESC;
Kết quả:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 2 | Khilan | 25 | Delhi | 1500.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | +----+----------+-----+-----------+----------+
Câu lệnh ORDER BY với mệnh đề TOP
Bạn có thể dùng mệnh đề TOP với ORDER BY để hạn chế số lượng hàng bằng cách phân loại nó theo thứ tự tăng hoặc giảm dần.
Cú pháp:
SELECT TOP N column1, column2, ...
FROM table_name
ORDER BY column_name1 [ASC | DESC], column_name2 [ASC | DESC], …
Ví dụ:
Giả sử bạn đang cố truy xuất 4 bản ghi hàng đầu từ bảng CUSTOMERS trên mức lương cơ bản và phân loại chúng theo thứ tự tăng dần dựa theo tên.
SELECT TOP 4 SALARY
FROM CUSTOMERS
ORDER BY NAME;
Kết quả:
+----------+ | SALARY | +----------+ | 6500.00 | | 8500.00 | | 2000.00 | | 1500.00 | +----------+
Tóm lại, những điều bạn cần biết khi dùng câu lệnh order by trong SQL:
- Bất cứ khi nào muốn phân loại bản ghi dựa trên cột được lưu trữ trong bảng cơ sở dữ liệu SQL, bạn có thể cân nhắc dùng lệnh ORDER BY trong SQL.
- Lệnh ORDER By trong SQL sẽ giúp lập trình viên phân loại các bản ghi dựa trên cột cụ thể trong bảng. Điều đó có nghĩa tất cả giá trị được lưu trong cột mà bạn dùng lệnh ORDERY BY sẽ được phân loại. Các giá trị cột tương ứng sẽ hiện theo thứ tự nhận được từ các bước trước đó.
- Sử dụng mệnh đề ORDER BY, bạn có thể sắp xếp các bản ghi theo thứ tự tăng dần hoặc giảm dần theo nhu cầu. Các bản ghi sẽ được sắp xếp theo thứ tự tăng dần bất cứ khi nào từ khóa ASC được sử dụng với mệnh đề ORDER by. Từ khóa DESC sẽ sắp xếp các bản ghi theo thứ tự giảm dần.
- Nếu không có từ khóa nào được chỉ định sau cột mà dựa vào đó chúng ta phải sắp xếp các bản ghi, lúc này, việc sắp xếp sẽ được thực hiện theo mặc định với thứ tự tăng dần.
Mệnh đề ORDER BY là một công cụ SQL cơ bản để sắp xếp kết quả truy vấn, cho phép bạn trình bày dữ liệu theo cách có cấu trúc. Cho dù sắp xếp theo một cột, nhiều cột hay sử dụng số cột, ORDER BY giúp bạn sắp xếp dữ liệu để phân tích và báo cáo tốt hơn. Bằng cách tìm hiểu cách sử dụng mệnh đề ORDER BY, bạn có thể tối ưu hóa các truy vấn SQL của mình để có khả năng đọc, cấu trúc và hiệu suất tốt hơn.
Những câu hỏi thường gặp khi dùng ORDER BY trong SQL
SQL ORDER BY là gì?
Mệnh đề ORDER BY trong SQL được sử dụng để sắp xếp tập kết quả của truy vấn theo thứ tự cụ thể dựa trên một hoặc nhiều cột. Mệnh đề này thường được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần, cho phép bạn kiểm soát cách trình bày dữ liệu để phân tích và dễ đọc hơn.
Khi nào sử dụng SQL ORDER BY?
Bạn sẽ sử dụng mệnh đề ORDER BY khi muốn:
- Sắp xếp kết quả của truy vấn theo thứ tự cụ thể.
- Sắp xếp dữ liệu để phân tích, báo cáo hoặc trực quan hóa dễ dàng hơn.
- Truy xuất dữ liệu theo trình tự có ý nghĩa cho ứng dụng hoặc nhu cầu báo cáo của bạn.
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
Cách dịch trang web sang tiếng Việt, tiếng Anh hoặc ngôn ngữ bất kỳ
Hôm qua 1 -
Toán tử trong SQL
Hôm qua -
Cách khắc phục mã lỗi 0x80004005
Hôm qua -
Sửa lỗi phím tắt Windows + Shift + S không hoạt động trên Windows 10
Hôm qua -
Cách hiển thị biểu tượng Bluetooth bị thiếu trên Taskbar Windows
Hôm qua -
Bluestacks
-
Cách hiện file ẩn, thư mục ẩn trên Windows 10/8/7
Hôm qua -
Cách phân quyền cho người dùng trong MS SQL Server
Hôm qua -
Cách khóa và mở khóa file Powerpoint để chỉnh sửa
Hôm qua -
Cách chọn kênh WiFi tốt nhất cho router
Hôm qua