[SQL Server] Sắp xếp dữ liệu với ORDER BY trong SQL

Sắp xếp dữ liệu với ORDER BY trong SQL

Nếu bạn muốn sắp xếp dữ liệu trả về theo tăng dần hoặc giảm dần thì có thể sử dụng lệnh ORDER BY, lệnh này được đặt cuối của câu truy vấn SELECT và có hai tham số truyền vào, cú pháp như sau:
1
2
3
4
SELECT column-list 
FROM table_name 
[WHERE condition] 
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
Trong đó:
  • column1, column2, .. columnN là danh sách các column sẽ được sắp xếp.
  • [ASC | DESC] là kiểu sắp xếp, nếu bạn chọn ASC thì tăng dần, còn DESC là giảm dần.
Nếu là số thú tự thì được sắp xếp từ0 -> 9, còn chữ cái thì từ a -> z. Thực tế thì nó sắp xếp dựa vào số thứ tự trong bảng mã ASCII.

Sắp xếp theo một column

Ví dụ: Sắp xếp danh sách bài viết trả về từ bài cũ đến bài mới. Vì trong bảng POSTS có column add_date nên mình sẽ dựa vào nó để biết bài nào cũ và bài nào mới.
1
2
3
SELECT *
FROM POSTS
ORDER BY ADD_DATE ASC
Nếu bạn muốn sắp xếp từ ngày đăng theo mới xuống cũ thì chỉ cần đổi ASC thành DESC.
1
2
3
SELECT *
FROM POSTS
ORDER BY ADD_DATE DESC

Sắp xếp theo nhiều column

Nếu bạn muốn sắp xếp theo nhiều column thì chỉ cần bổ sung nó vào và cách nhau bởi dấu phẩy. 
Ví dụ: Sắp xếp bài viết theo tiêu đề và ngày đăng theo hai cách tăng và giảm dần.
Tăng dần
1
2
3
SELECT *
FROM POSTS
ORDER BY ADD_DATE, ID ASC
Giảm dần
1
2
3
SELECT *
FROM POSTS
ORDER BY ADD_DATE, ID DESC
Trên là cách sử dụng lệnh ORDER BY trong SQL, lệnh này rất hữu ích và được sử dụng rất thường xuyên.

Nhận xét

Bài đăng phổ biến từ blog này

[SQL Server] Toán tử LIKE và NOT LIKE trong SQL

[Javascript] Object constructor

[SQL Server] Lọc dữ liệu trùng với DISTINCT trong SQL