Lệnh ORDER BY trong SQL
ORDER BY trong SQL được sử dụng khá nhiều khi lập trình. Dưới đây là những điều bạn cần biết về 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.
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âu nói hay về người thứ ba, stt về người thứ ba trong tình yêu thâm thúy
Hôm qua -
Tổng hợp phím tắt Đấu Trường Chân Lý
Hôm qua -
Hàm Round, cách dùng hàm làm tròn trong Excel
Hôm qua -
Cách tạo sticker tùy chỉnh trên Telegram
Hôm qua -
Cách chuyển MKV sang MP4 trong Windows
Hôm qua -
Khám phá nhà máy chip của Intel, sạch hơn cả bệnh viện, tiêu tốn 41 triệu lít nước/ngày
Hôm qua -
4 cách dễ dàng để sao chép và dán văn bản trên Android
Hôm qua -
Excel 2016 - Bài 11: Kiểm tra chính tả trong bảng tính Excel
Hôm qua -
Không cần sử dụng chương trình diệt virus, đây là cách loại bỏ tận gốc virus trên máy tính của bạn
Hôm qua -
Cách view source, xem mã nguồn trang web bằng điện thoại, máy tính
Hôm qua 1