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)

Kết quả:
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)

KhachhangIDHoTenTenLienLacDiachiThanhphoMaBuudienQuocGia
60Nguyễn Thị Bích ThúyNguyễn Thị Bích Thúytcv Quảng BìnhQuảng Bình500Anh
75Nguyễn Thu HoàiNguyễn Thu Hoàiopuza Bến TreBến Tre455Anh
80Vũ Thị Thu HươngVũ Thị Thu Hươngr Đắk NôngĐắk Nông500Anh
82Trần Thị Thanh TâmTrần Thị Thanh Tâmxonov Hòa BìnhHòa Bình100Anh
84Trần Diễm Thùy DươngTrần Diễm Thùy Dươngxsyfrb Lai ChâuLai Châu500Anh
3Lưu Trang AnhLưu Trang Anhh Gia LaiGia Lai222Mỹ
7Tăng Phương ChiTăng Phương Chig Hải DươngHải Dương888Mỹ
9Nguyễn Thái DươngNguyễn Thái Dươngmnn Bạc LiêuBạc Liêu222Mỹ
16Phạm Xuân HòaPhạm Xuân Hòanfxh Lào CaiLào Cai222Mỹ
25Vũ Trung ĐứcVũ Trung Đứcbvny Cao BằngCao Bằng300Mỹ

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 ASCDESC

  • 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
KhachhangIDHoTenTenLienLacDiachiThanhphoMaBuudienQuocGia
62Đoàn Thị Thu HuyềnĐoàn Thị Thu Huyềnhqt Bắc NinhBắc Ninh666Việt Nam
68Vũ Thị Phương MaiVũ Thị Phương Maierqcp Điện BiênĐiện Biên100Việt Nam
71Phạm Thu HươngPhạm Thu Hươngnv Quảng NamQuảng Nam100Việt Nam
76Nguyễn Thị LýNguyễn Thị Lýjnu Vĩnh PhúcVĩnh Phúc100Việt Nam
79Nguyễn Quỳnh GiangNguyễn Quỳnh Giangnpkxbcod Bình ĐịnhBình Định666Việt Nam
87Bùi Thị Kim OanhBùi Thị Kim Oanhlghhp Lạng SơnLạng Sơn222Việt Nam
3Lưu Trang AnhLưu Trang Anhh Gia LaiGia Lai222Mỹ
7Tăng Phương ChiTăng Phương Chig Hải DươngHải Dương888Mỹ
9Nguyễn Thái DươngNguyễn Thái Dươngmnn Bạc LiêuBạc Liêu222Mỹ
16Phạm Xuân HòaPhạm Xuân Hòanfxh Lào CaiLào Cai222Mỹ

Đăng ký nhận bài viết mới