Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để sắp xếp DESC theo một trường, nhưng liệt kê các giá trị NULL trước?

Để sắp xếp theo một trường và liệt kê các giá trị NULL trước tiên, bạn cần sử dụng cú pháp sau. Điều này sẽ sắp xếp theo thứ tự giảm dần -

select yourColumnName from yourTableName group by yourColumnName is null desc,yourColumnName desc;

Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng -

mysql> create table OrderByNullFirstDemo
   −> (
   −> StudentId int
   −> );
Query OK, 0 rows affected (0.56 sec)

Chèn một số bản ghi trong bảng với sự trợ giúp của lệnh insert. Truy vấn như sau -

mysql> insert into OrderByNullFirstDemo values(100);
Query OK, 1 row affected (0.13 sec)

mysql> insert into OrderByNullFirstDemo values(200);
Query OK, 1 row affected (0.13 sec)

mysql> insert into OrderByNullFirstDemo values(150);
Query OK, 1 row affected (0.13 sec)

mysql> insert into OrderByNullFirstDemo values(NULL);
Query OK, 1 row affected (0.15 sec)

Hiển thị tất cả các bản ghi từ bảng với sự trợ giúp của câu lệnh select. Truy vấn để hiển thị tất cả các bản ghi như sau -

mysql> select *from OrderByNullFirstDemo;

Sau đây là kết quả -

+-----------+
| StudentId |
+-----------+
|       100 |
|       200 |
|       150 |
|      NULL |
+-----------+
4 rows in set (0.00 sec)

Thực hiện cú pháp mà chúng ta đã thảo luận ở phần đầu để thực hiện thứ tự theo thứ tự giảm dần và hiển thị giá trị null efirst -

mysql> select StudentId from OrderByNullFirstDemo group by StudentId is null desc,StudentId desc;

Sau đây là kết quả -

+-----------+
| StudentId |
+-----------+
|      NULL |
|       200 |
|       150 |
|       100 |
+-----------+
4 rows in set, 2 warnings (0.00 sec)