SẮP XẾP THEO

Đã hoàn thành

Mệnh ORDER BY đề được sử dụng trong SQL để sắp xếp tập kết quả của một câu SELECT lệnh. Điều này có nghĩa là nó sắp xếp các hàng của đầu ra dựa trên các giá trị của một hoặc nhiều cột.

Điều này rất cần thiết để sắp xếp dữ liệu theo cách giúp diễn giải và sử dụng dễ dàng hơn. Bạn có thể chỉ định một hoặc nhiều cột để sắp xếp theo đó và bạn có quyền kiểm soát thứ tự sắp xếp: tăng dần (từ nhỏ nhất đến lớn nhất hoặc từ A đến Z) hoặc giảm dần (từ lớn nhất đến nhỏ nhất hoặc từ Z đến A). Không ORDER BYcó , thứ tự của các hàng được trả về là không thể dự đoán được.

Sắp xếp theo thứ tự tăng dần (mặc định)

SELECT * 
FROM sales.products
ORDER BY price;

Truy vấn này truy xuất các sản phẩm được sắp xếp theo giá theo thứ tự tăng dần, đây là hành vi mặc định của ORDER BY.
Mặc dù dư thừa nhưng bạn có thể thêm một cách ASC rõ ràng vào cuối truy vấn, điều này có thể cải thiện tính dễ đọc.

Để thay đổi thứ tự, bạn cần cho biết rõ ràng, như được minh họa trong ví dụ sau đây.

Sắp xếp theo thứ tự giảm dần

SELECT * 
FROM sales.products
ORDER BY price DESC;

Truy vấn này truy xuất các sản phẩm được sắp xếp theo giá theo thứ tự giảm dần.

Sắp xếp theo nhiều cột

SELECT * 
FROM sales.customers
ORDER BY country, city;

Truy vấn này truy xuất tất cả (*) các cột sales.customers từ bảng, rồi sắp xếp các hàng kết quả. Việc sắp xếp được thực hiện ở hai mức: - Trước tiên, kết quả được sắp xếp theo bảng chữ cái theo cột quốc gia. Điều này có nghĩa là tất cả các khách hàng từ "Argentina" sẽ được nhóm lại với nhau, theo sau là khách hàng từ "Áo," và như vậy. - Trong mỗi nhóm khách hàng từ cùng một quốc gia, kết quả được sắp xếp theo thứ tự bảng chữ cái theo cột thành phố. Vì vậy, nếu bạn có nhiều khách hàng từ "Đức", họ sẽ được đặt hàng theo tên thành phố của họ (ví dụ: "Aachen" trước "Berlin").

Về bản chất, truy vấn này cung cấp một danh sách khách country hàng được sắp xếp chủ yếu theo và sau đó, trong mỗi country, được sắp xếp theo city. Điều này giúp bạn dễ dàng tìm thấy khách hàng từ một khu vực cụ thể.
Ngoài ra, việc kết hợp phương pháp này với ASC hoặc DESC bổ trợ cho phép kiểm soát hoàn toàn hướng sắp xếp cho từng cột.

SELECT * 
FROM sales.customers
ORDER BY country ASC, city DESC;

Truy vấn này sẽ sắp xếp các quốc gia theo thứ tự tăng dần trong khi sắp xếp các thành phố trong mỗi quốc gia theo thứ tự giảm dần.