在MySQL中先显示不为空值的结果,然后再显示为空值的结果

让我们首先创建一个表-

create table DemoTable1357
    -> (
    -> StudentName varchar(40),
    -> StudentCountryName varchar(30)
    -> );

使用插入命令在表中插入一些记录-

insert into DemoTable1357 values('Chris','US');
insert into DemoTable1357 values('David',NULL);
insert into DemoTable1357 values('David','AUS');
insert into DemoTable1357 values('Carol',NULL);
insert into DemoTable1357 values('Mike','UK');

使用select语句显示表中的所有记录-

select * from DemoTable1357;

这将产生以下输出-

+-------------+--------------------+
| StudentName | StudentCountryName |
+-------------+--------------------+
| Chris       | US                 |
| David       | NULL               |
| David       | AUS                |
| Carol       | NULL               |
| Mike        | UK                 |
+-------------+--------------------+
5 rows in set (0.00 sec)

以下是查询以首先显示不为空值然后为空值的结果-

select * from DemoTable1357
    -> order by (StudentCountryName IS NULL),StudentName;

这将产生以下输出-

+-------------+--------------------+
| StudentName | StudentCountryName |
+-------------+--------------------+
| Chris       | US                 |
| David       | AUS                |
| Mike        | UK                 |
| Carol       | NULL               |
| David       | NULL               |
+-------------+--------------------+
5 rows in set (0.00 sec)