Mệnh đề ORDER BY sắp xếp kết quả theo một cột
ORDER BY trong SQL được sử dụng cùng với SELECT
để sắp xếp thứ tự
(tăng dần, giảm dần) của tập kết quả trả về. Trước tiên tìm hiểu sắp xếp sql theo một cột.
Ví dụ: kết quả trả về sắp xếp theo tứ tự tăng dần của cột Hoten (do Hoten là text nên sắp xếp theo bảng chữ cái, vần A rồi đến B ..., trong trường hợp cột sắp xếp dạng số thì nó sẽ xếp theo giá trị theo kiểu số.)
SELECT * FROM Khachhang ORDER BY Hoten LIMIT 14, 9
Mặc định ORDER BY sắp xếp tăng dần (ASC giá trị nhỏ ở những dòng đầu lớn ở sau)
KhachhangID | HoTen | TenLienLac | Diachi | Thanhpho | MaBuudien | QuocGia |
---|---|---|---|---|---|---|
3 | Lưu Trang Anh | Lưu Trang Anh | h Gia Lai | Gia Lai | 222 | Mỹ |
20 | Mai Tùng Bách | Mai Tùng Bách | fxrtrx Đồng Tháp | Đồng Tháp | 100 | Đức |
11 | Mạc Trung Đức | Mạc Trung Đức | ivwfcu Đồng Nai | Đồng Nai | 500 | Việt Nam |
90 | Nguyễn Bích Thủy | Nguyễn Bích Thủy | dtfbfx Điện Biên | Điện Biên | 500 | Ý |
74 | Nguyễn Diệu Hương | Nguyễn Diệu Hương | mamqnydv Đắk Nông | Đắk Nông | 300 | Mỹ |
18 | Nguyễn Hùng Anh | Nguyễn Hùng Anh | d Đắk Lắk | Đắk Lắk | 200 | Đức |
39 | Nguyễn Hữu Ngọc Khánh | Nguyễn Hữu Ngọc Khánh | nwsh Cao Bằng | Cao Bằng | 100 | Việt Nam |
14 | Nguyễn Lê Hiếu | Nguyễn Lê Hiếu | giwumbyj Bình Thuận | Bình Thuận | 999 | Ý |
15 | Nguyễn Lê Hiếu | Nguyễn Lê Hiếu | ffc Cà Mau | Cà Mau | 100 | Anh |
Có một file CSDL mẫu dạng SQLite, bạn có thể tải về thực hành: CSDL SQLite mẫu. Hoặc Chạy SQL Online
Từ khóa ORDER BY mệnh đề sắp xếp theo nhiều cột
ORDER BY cho phép xếp theo nhiều cột. Các cột chỉ ra trong mệnh đề ORDER BY cách nhau bởi dấu phảy, nó sẽ tiến hành sắp xếp lần lượt theo các cột được chỉ ra.
Ví dụ xếp kết quả truy vấn sau theo tên quốc gia (cột Quocgia), sau đó các kết quả cùng quốc gia xếp theo KhachhangID
SELECT * FROM Khachhang ORDER BY Quocgia, KhachhangID LIMIT 12,10
Kết quả: Bảng kết quả cho thấy các khách hàng có quốc giá Anh xếp trên nhóm khách hàng Mỹ do xếp theo tên quốc gia, Anh đứng trước trong bảng chữ cái. Sau đó các khách hàng cùng quốc gia được xếp theo KhachhangID (ID nhỏ xếp trên)
KhachhangID | HoTen | TenLienLac | Diachi | Thanhpho | MaBuudien | QuocGia |
---|---|---|---|---|---|---|
60 | Nguyễn Thị Bích Thúy | Nguyễn Thị Bích Thúy | tcv Quảng Bình | Quảng Bình | 500 | Anh |
75 | Nguyễn Thu Hoài | Nguyễn Thu Hoài | opuza Bến Tre | Bến Tre | 455 | Anh |
80 | Vũ Thị Thu Hương | Vũ Thị Thu Hương | r Đắk Nông | Đắk Nông | 500 | Anh |
82 | Trần Thị Thanh Tâm | Trần Thị Thanh Tâm | xonov Hòa Bình | Hòa Bình | 100 | Anh |
84 | Trần Diễm Thùy Dương | Trần Diễm Thùy Dương | xsyfrb Lai Châu | Lai Châu | 500 | Anh |
3 | Lưu Trang Anh | Lưu Trang Anh | h Gia Lai | Gia Lai | 222 | Mỹ |
7 | Tăng Phương Chi | Tăng Phương Chi | g Hải Dương | Hải Dương | 888 | Mỹ |
9 | Nguyễn Thái Dương | Nguyễn Thái Dương | mnn Bạc Liêu | Bạc Liêu | 222 | Mỹ |
16 | Phạm Xuân Hòa | Phạm Xuân Hòa | nfxh Lào Cai | Lào Cai | 222 | Mỹ |
25 | Vũ Trung Đức | Vũ Trung Đức | bvny Cao Bằng | Cao Bằng | 300 | Mỹ |
ORDER BY tăng dần ASC, giảm dần DESC
Để chỉ rõ sắp xếp giảm dần trong sql, sắp xếp tăng dần trong sql thì mệnh đề ORDER BY kết hợp với từ khóa ASC và DESC
-
ORDER BY tên-cột ASC, ...
xếp tăng dần theo tên-cột, mặc định (asc trong sql không cần chỉ ra cũng được). -
ORDER BY tên-cột DESC, ...
Từ khóa desc trong sql để xếp giảm dần theo tên-cột.
Ví dụ xếp kết quả tên quốc gia giảm dần, sau đó trong cùng quốc gia thì CustomeID tăng dần
SELECT * FROM Khachhang ORDER BY Quocgia DESC, KhachhangID ASC LIMIT 50,10
KhachhangID | HoTen | TenLienLac | Diachi | Thanhpho | MaBuudien | QuocGia |
---|---|---|---|---|---|---|
62 | Đoàn Thị Thu Huyền | Đoàn Thị Thu Huyền | hqt Bắc Ninh | Bắc Ninh | 666 | Việt Nam |
68 | Vũ Thị Phương Mai | Vũ Thị Phương Mai | erqcp Điện Biên | Điện Biên | 100 | Việt Nam |
71 | Phạm Thu Hương | Phạm Thu Hương | nv Quảng Nam | Quảng Nam | 100 | Việt Nam |
76 | Nguyễn Thị Lý | Nguyễn Thị Lý | jnu Vĩnh Phúc | Vĩnh Phúc | 100 | Việt Nam |
79 | Nguyễn Quỳnh Giang | Nguyễn Quỳnh Giang | npkxbcod Bình Định | Bình Định | 666 | Việt Nam |
87 | Bùi Thị Kim Oanh | Bùi Thị Kim Oanh | lghhp Lạng Sơn | Lạng Sơn | 222 | Việt Nam |
3 | Lưu Trang Anh | Lưu Trang Anh | h Gia Lai | Gia Lai | 222 | Mỹ |
7 | Tăng Phương Chi | Tăng Phương Chi | g Hải Dương | Hải Dương | 888 | Mỹ |
9 | Nguyễn Thái Dương | Nguyễn Thái Dương | mnn Bạc Liêu | Bạc Liêu | 222 | Mỹ |
16 | Phạm Xuân Hòa | Phạm Xuân Hòa | nfxh Lào Cai | Lào Cai | 222 | Mỹ |