ORDER BY – Mệnh đề
Nội dung
1. Mô tả
- Mệnh đề ORDER BY dùng để sắp xếp dữ liệu.
- ASC: thứ tự tăng dần, mặc định.
- DESC: thứ tự giảm dần.
2. Cú pháp
--Sắp xếp tăng dần:
SELECT Tên_cột
FROM Tên_bảng
ORDER BY Tên_cột ASC
--Sắp xếp giảm dần:
SELECT Tên_cột
FROM Tên_bảng
ORDER BY Tên_cột DESC
3. Ví dụ
- Sắp xếp tăng dần:
SELECT Employee_id, Last_name, Salary, Job_id, Department_id
FROM EMPLOYEES
WHERE Department_id = 30
ORDER BY Salary

SELECT Employee_id, Last_name, Salary, Job_id, Department_id
FROM EMPLOYEES
WHERE Department_id = 30
ORDER BY Salary ASC

- Sắp xếp giảm dần:
SELECT Employee_id, Last_name, Salary, Job_id, Department_id
FROM EMPLOYEES
WHERE Department_id = 30
ORDER BY Salary DESC

- Xếp theo bí danh của cột:
SELECT Employee_id, Last_name, Salary * 12 "Luong Mot Nam"
FROM EMPLOYEES
ORDER BY "Luong Mot Nam"

- Xếp theo nhiều cột (thứ tự các cột trong danh sách ORDER BY chính là thứ tự sắp xếp):
SELECT Employee_id, Last_name, Department_id, Salary, Job_id
FROM EMPLOYEES
WHERE Department_id IN (20, 30)
ORDER BY Department_id, Salary DESC

- Sắp xếp với từ khóa OFFSET <n> ROWS – Liệt kê dữ liệu có sắp xếp kể từ dòng thứ n+1:

- Sắp xếp với từ khóa OFFSET <n> ROWS và FETCH NEXT <m> ROWS ONLY – Liệt kê m dòng có sắp xếp kể từ dòng thứ n+1:

- Xếp dữ liệu và phân trang: Sử dụng từ khóa OFFSET <n> ROWS FETCH NEXT <m> ROWS ONLY:
DECLARE @PageSize int=10, @PageNo int=2
SELECT Employee_id, First_name, Last_name, Hire_date, Salary
FROM EMPLOYEES
ORDER BY Salary
OFFSET @PageSize * (@PageNo -1) ROWS FETCH NEXT @PageSize ROWS ONLY
