如何通过某个字段按降序排序,但首先列出 NULL 值?
若要按某个字段排序,但首先列出 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)
广告