45
5. Sắp xếp kết quả với ORDER BY
Mệnh đề ORDER BY cho phép sắp xếp các kết quả trên một hoặc nhiều cột trong kết quả
truy vấn theo thứ tự tăng dần hay giảm dần. Để sắp xếp kết quả theo thứ tự tăng dần, sử
dụng ASC; giảm dần là DESC. Theo mặc định, ORDER BY sẽ sắp xếp các kết quả theo
thứ tự tăng dần.
Ví dụ: để sắp xếp danh sách nhân viên theo
tên và
vị trí công việc, có thể thực hiện truy
vấn sau đây:
SELECT FirstName,
LastName, jobtitle
FROM
Employees
ORDER
BY firstname ASC, jobtitle DESC;
46
Hoặc có thể đưa ra thông tin về tên các sản phẩm theo thứ tự tăng dần của số lượng hàng
tồn kho bằng truy vấn như sau:
SELECT productName
FROM
Products
ORDER BY quantityInStock;
Trong câu lệnh trên từ khóa ASC không sử dụng, do mặc định sẽ sắp xếp kết quả theo
thứ tự tăng dần. Kết quả của câu lệnh trong hình sau.
48
Theo mặc định, UNION MySQL loại bỏ tất cả các hàng trùng lặp từ kết quả ngay cả khi
không sử dụng từ khoá DISTINCT sau từ khoá UNION.
Nếu sử dụng UNION ALL, các hàng trùng lặp vẫn còn trong tập hợp kết quả cuối cùng.
chỉ nên sử dụng điều này trong các trường hợp hoặc là muốn giữ lại bản sao các hàng,
hoặc chắc chắn rằng có không có bản sao các hàng trong tập hợp kết quả.
Ví dụ: kết hợp thông tin về các
khách hàng và nhân viên thành một tập hợp kết quả, sử
dụng truy vấn sau đây:
SELECT customerNumber id, contactLastname name
FROM
customers
UNION
SELECT employeeNumber id,firstname name
FROM
employees
Khi sử dụng ORDER BY để sắp xếp kết quả với UNION, phải đặt nó ở vị trí cuối cùng
trong mệnh đề SELECT.