Mệnh đề ORDER BY Trong SQL - Phongvan PC
Có thể bạn quan tâm
Mệnh đề ORDER BY trong SQL được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần, dựa trên một hoặc nhiều cột. Một số cơ sở dữ liệu sắp xếp các kết quả truy vấn theo thứ tự tăng dần theo mặc định. Lệnh ASC được sử dụng để sắp xếp tăng dần và DESC được sử dụng để sắp xếp giảm dần.
Cú pháp
Cú pháp cơ bản của mệnh đề ORDER BY như sau:
SELECT column FROM table_name WHERE condition ORDER BY column1, column2, .. columnN [ASC | DESC];Bạn có thể sử dụng nhiều hơn một cột trong mệnh đề ORDER BY. Đảm bảo rằng bất kỳ cột bạn đang sử dụng để sắp xếp cột đó phải nằm trong danh sách cột.
Ví dụ
Giả sử bảng STUDENT có các bản ghi sau đây:
| ID | NO | NAME | BIRTHDAY | SEX | ADDRESS | SCORES |
| 1 | 100 | kumori | 1991-01-01 | nam | fukuoka | 5000 |
| 2 | 101 | yamada | 1991-02-01 | nu | nagasaki | 6000 |
| 3 | 102 | takata | 1995-05-20 | nam | tokyo | 4000 |
| 4 | 103 | yoshida | 1991-05-30 | nam | osaka | 6000 |
| 5 | 104 | ishibashi | 1998-06-01 | nu | kumamoto | 7000 |
| 6 | 105 | toyota | 1997-02-09 | nu | yamaguchi | 8000 |
| 7 | 106 | tokuda | 1994-02-24 | nam | fukuoka | 9000 |
| 8 | 107 | takeshima | 1993-05-04 | nam | nagasaki | 8000 |
| 9 | 108 | takai | 1992-08-12 | nam | osaka | 9000 |
| 10 | 109 | murakami | 1992-01-02 | nu | tokyo | 5000 |
Sắp xếp kết quả theo thứ tự tăng dần bởi các trường ADDRESS và SCORES:
SELECT * FROM STUDENT ORDER BY ADDRESS, SCORES;Kết quả:
| ID | NO | NAME | BIRTHDAY | SEX | ADDRESS | SCORES |
| 1 | 100 | kumori | 1991-01-01 | nam | fukuoka | 5000 |
| 7 | 106 | tokuda | 1994-02-24 | nam | fukuoka | 9000 |
| 5 | 104 | ishibashi | 1998-06-01 | nu | kumamoto | 7000 |
| 2 | 101 | yamada | 1991-02-01 | nu | nagasaki | 6000 |
| 8 | 107 | takeshima | 1993-05-04 | nam | nagasaki | 8000 |
| 4 | 103 | yoshida | 1991-05-30 | nam | osaka | 6000 |
| 9 | 108 | takai | 1992-08-12 | nam | osaka | 9000 |
| 3 | 102 | takata | 1995-05-20 | nam | tokyo | 4000 |
| 10 | 109 | murakami | 1992-01-02 | nu | tokyo | 5000 |
| 6 | 105 | toyota | 1997-02-09 | nu | yamaguchi | 8000 |
Bây giờ sắp xếp kết quả theo thứ tự giảm dần bởi trường SCORES:
SELECT * FROM STUDENT ORDER BY SCORES DESC;Kết quả:
| ID | NO | NAME | BIRTHDAY | SEX | ADDRESS | SCORES |
| 7 | 106 | tokuda | 1994-02-24 | nam | fukuoka | 9000 |
| 9 | 108 | takai | 1992-08-12 | nam | osaka | 9000 |
| 6 | 105 | toyota | 1997-02-09 | nu | yamaguchi | 8000 |
| 8 | 107 | takeshima | 1993-05-04 | nam | nagasaki | 8000 |
| 5 | 104 | ishibashi | 1998-06-01 | nu | kumamoto | 7000 |
| 2 | 101 | yamada | 1991-02-01 | nu | nagasaki | 6000 |
| 4 | 103 | yoshida | 1991-05-30 | nam | osaka | 6000 |
| 1 | 100 | kumori | 1991-01-01 | nam | fukuoka | 5000 |
| 10 | 109 | murakami | 1992-01-02 | nu | tokyo | 5000 |
| 3 | 102 | takata | 1995-05-20 | nam | tokyo | 4000 |
Ngoài ra để sắp xếp theo thứ tự ưu tiên của riêng mình, các bạn có thể gán cho trường muốn ưu tiên giá trị bằng cách kết hợp với mệnh đề CASE, ví dụ mình muốn sắp xếp cho các ông ở tokyo đứng đầu tiên sau đó đến osaka, tiếp theo là fukuoka và cuối cùng là các tỉnh còn lại. Các trường ADDRESS sẽ sắp xếp theo thứ tự tăng dần và SCORES sẽ theo thứ tự giảm dần.
SELECT * FROM STUDENT ORDER BY ( CASE ADDRESS WHEN 'tokyo' THEN 1 WHEN 'osaka' THEN 2 WHEN 'fukuoka' THEN 3 ELSE 10 END) ASC, SCORES DESC;Kết quả:
| ID | NO | NAME | BIRTHDAY | SEX | ADDRESS | SCORES |
| 10 | 109 | murakami | 1992-01-02 | nu | tokyo | 5000 |
| 3 | 102 | takata | 1995-05-20 | nam | tokyo | 4000 |
| 9 | 108 | takai | 1992-08-12 | nam | osaka | 9000 |
| 4 | 103 | yoshida | 1991-05-30 | nam | osaka | 6000 |
| 7 | 106 | tokuda | 1994-02-24 | nam | fukuoka | 9000 |
| 1 | 100 | kumori | 1991-01-01 | nam | fukuoka | 5000 |
| 6 | 105 | toyota | 1997-02-09 | nu | yamaguchi | 8000 |
| 8 | 107 | takeshima | 1993-05-04 | nam | nagasaki | 8000 |
| 5 | 104 | ishibashi | 1998-06-01 | nu | kumamoto | 7000 |
| 2 | 101 | yamada | 1991-02-01 | nu | nagasaki | 6000 |
Kết quả cho thấy các bản ghi được sắp xếp theo thứ tự tăng dần của trường ADDRESS sau đó mới đến thứ giảm dần của trường SCORES.
共有:
- X
Có liên quan
Từ khóa » Sử Dụng Order By Trong Sql
-
Mệnh đề ORDER BY Trong SQL Server
-
Lệnh ORDER BY Trong SQL
-
Mệnh đề ORDER BY Trong SQL - Học Sql Cơ Bản đến Nâng Cao
-
ORDER BY Sắp Xếp Kết Quả Tăng Giảm Trong SQL
-
Chi Tiết Bài Học 01. Mệnh đề ORDER BY Trong SQL - Vimentor
-
ORDER BY Trong SQL - Lệnh Sắp Xếp Trong SQL Tăng Hay Giảm
-
Sắp Xếp Thứ Tự Với Từ Khóa ORDER BY Trong SQL
-
ORDER BY Trong SQL Server
-
Sắp Xếp Dữ Liệu Với ORDER BY Trong SQL - Vi
-
Mệnh đề ORDER BY Trong SQL - Thủ Thuật
-
Mệnh đề ORDER BY Trong SQL - Lập Trình Từ Đầu
-
Một Vài Lưu ý Khi Sử Dụng TOP Và ORDER BY
-
Sắp Xếp Dữ Liệu Với ORDER BY Trong SQL - Freetuts
-
Mệnh đề ORDER BY - Microsoft Support