按兩個欄位排序的 MySQL 查詢,NULL 值按時間順序排列?


讓我們先建立一個表 -

mysql> create table DemoTable
-> (
-> FirstName varchar(100),
-> LastName varchar(100)
-> );
Query OK, 0 rows affected (1.39 sec)

使用 insert 命令在表中插入一些記錄 -

mysql> insert into DemoTable values('Sam','Brown');
Query OK, 1 row affected (0.25 sec)

mysql> insert into DemoTable values(null,'Smith');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('David','Taylor');
Query OK, 1 row affected (0.22 sec)

mysql> insert into DemoTable values('Mike',null);
Query OK, 1 row affected (0.45 sec)

使用 select 語句從表中顯示所有記錄 -

mysql> select *from DemoTable;

輸出

這將產生以下輸出 -

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Sam       | Brown    |
| NULL      | Smith    |
| David     | Taylor   |
| Mike      | NULL     |
+-----------+----------+
4 rows in set (0.06 sec)

以下是按兩個欄位,如果存在 NULL 值則按時間順序排序的查詢 -

mysql> select *from DemoTable order by coalesce(FirstName,LastName);

輸出

這將產生以下輸出 -

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| David     | Taylor   |
| Mike      | NULL     |
| Sam       | Brown    |
| NULL      | Smith    |
+-----------+----------+
4 rows in set (0.04 sec)

更新時間:30-6 月-2020

210 個瀏覽量

開啟您的 職業生涯

完成課程獲取認證

開始學習
廣告