Tags:

Mệnh đề ORDER BY trong SQL

Trong SQLmệnh đề ORDER BY được sử dụng để sắp xếp dữ liệu theo thứ tự tăng hoặc giảm dần trên một hoặc nhiều cột. Hầu hết các database hiện đại sắp xếp các kết quả truy vấn theo thứ tự tăng dần mặc định.

Trong đó, 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.

Ở bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng mệnh đề ORDER BY trong SQL với cú pháp và ví dụ cụ thể.

Cú pháp lệnh ORDER BY trong SQL

Cú pháp cơ bản của lệnh ORDER BY với câu lệnh SELECT sẽ như sau:

SELECT * FROM table_name ORDER BY column_name ASC|DESC

table_name: tên của bảng
column_name: tên cột muốn sắp xếp
ASC: Sắp xếp tăng dần
DESC: Sắp xếp giảm dần

Lưu ý:

  • Nếu không chọn cụ thể ASC hay DESC trong mệnh đề ORDER BY thì kết quả sẽ mặc định được sắp xếp theo thứ tự tăng dần, tương đương với [ORDER BY cot1, cot2, .. cotN] [ASC].

Ví dụ về ORDER BY trong SQL

Giả sử bảng NHANVIEN có các bản ghi như sau:

+----+----------+-----+-----------+----------+
 | ID | TEN      |TUOI | DIACHI    | LUONG    |
 +----+----------+-----+-----------+----------+
 |  1 | Thanh    |  32 | Haiphong  |  2000.00 |
 |  2 | Loan     |  25 | Hanoi     |  1500.00 |
 |  3 | Nga      |  23 | Hanam     |  2000.00 |
 |  4 | Manh     |  25 | Hue       |  6500.00 |
 |  5 | Huy      |  27 | Hatinh    |  8500.00 |
 |  6 | Cao      |  22 | HCM       |  4500.00 |
 |  7 | Lam      |  24 | Hanoi     | 10000.00 |
 +----+----------+-----+-----------+----------+

Ví dụ sau minh họa cách sắp xếp theo thứ tự tăng dần cho TEN và LUONG.

SQL> SELECT * FROM NHANVIEN
ORDER BY TEN, LUONG; 

Ví dụ trên trả về kết quả

+----+----------+-----+-----------+----------+
 | ID | TEN      |TUOI | DIACHI    | LUONG    |
 +----+----------+-----+-----------+----------+
 |  6 | Cao      |  22 | HCM       |  4500.00 |
 |  5 | Huy      |  27 | Hatinh    |  8500.00 |
 |  7 | Lam      |  24 | Hanoi     | 10000.00 |
 |  2 | Loan     |  25 | Hanoi     |  1500.00 |
 |  4 | Manh     |  25 | Hue       |  6500.00 |
 |  3 | Nga      |  23 | Hanam     |  2000.00 |
 |  1 | Thanh    |  32 | Haiphong  |  2000.00 |
 +----+----------+-----+-----------+----------+

Khối lệnh sau sẽ sắp xếp kết quả theo thứ tự giảm dần bởi trường TEN.

SQL> SELECT * FROM NHANVIEN
 ORDER BY TEN DESC;

Kết quả trả về là

 +----+----------+-----+-----------+----------+
 | ID | TEN      |TUOI | DIACHI    | LUONG    |
 +----+----------+-----+-----------+----------+
 |  1 | Thanh    |  32 | Haiphong  |  2000.00 |
 |  3 | Nga      |  23 | Hanam     |  2000.00 |
 |  4 | Manh     |  25 | Hue       |  6500.00 |
 |  2 | Loan     |  25 | Hanoi     |  1500.00 |
 |  7 | Lam      |  24 | Hanoi     | 10000.00 |
 |  5 | Huy      |  27 | Hatinh    |  8500.00 |
 |  6 | Cao      |  22 | HCM       |  4500.00 |
 +----+----------+-----+-----------+----------+
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x