如何按字段降序排序,但首先列出 NULL 值?
mysqlmysqli database
要按字段排序并首先列出 NULL 值,您需要使用以下语法。这将按降序排序−
select yourColumnName from yourTableName group by yourColumnName is null desc,yourColumnName desc;
为了理解上述语法,让我们首先创建一个表 −
mysql> create table OrderByNullFirstDemo −> ( −> StudentId int −> ); Query OK, 0 rows affected (0.56 sec)
使用insert命令在表中插入一些记录,查询如下 −
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)
使用 select 语句显示表中的所有记录。显示所有记录的查询如下 −
mysql> select *from OrderByNullFirstDemo;
以下是输出 −
+-----------+ | StudentId | +-----------+ | 100 | | 200 | | 150 | | NULL | +-----------+ 4 rows in set (0.00 sec)
实现我们在开始时讨论的语法,按降序执行排序并首先显示空值 −
mysql> select StudentId from OrderByNullFirstDemo group by StudentId is null desc,StudentId desc;
以下是输出 −
+-----------+ | StudentId | +-----------+ | NULL | | 200 | | 150 | | 100 | +-----------+ 4 rows in set, 2 warnings (0.00 sec)