ORDER BY – Mệnh đề

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.

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

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> ROWSFETCH 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

Leave a Reply

Your email address will not be published. Required fields are marked *