SQL 檢索排序資料(ORDER BY子句)
阿新 • • 發佈:2018-12-30
ORDER BY 子句用於對結果集按照一個列或者多個列進行排序。
ORDER BY 子句預設按照升序對記錄進行排序。如果需要按照降序對記錄進行排序,您可以使用 DESC 關鍵字。
注意:ORDER BY 子句應該位於FROM子句之後,若使用LIMIT關鍵字時,LIMIT關鍵字必須要位於ORDER BY子句之後。
升序排序
升序排序(從小到大)為ORDER BY 預設排序方式,也可以在SQL語句中指明使用升序排序,使用 ASC 關鍵字。命令:
SELECT 列名1,列名2,…… FROM 表名 ORDER BY 列名(根據哪一列進行排序); 或 SELECT 列名1,列名2,…… FROM 表名 ORDER BY 列名(根據哪一列進行排序) ASC;
降序排序
降序排序(從大到小),使用DESC關鍵字。命令:
SELECT 列名1,列名2,…… FROM 表名 ORDER BY 列名(根據哪一列進行排序) DESC;
按照多個列進行排序
按多個列進行排序,只要指定列名,列名之間用逗號分開即可。
若果想要對多個列進行降序排序,必須對每個列指定DESC關鍵字,若不指定DESC則為預設排序方式(升序排序)。
命令:
SELECT 列名1,列名2,…… FROM 表名 ORDER BY 列名1,列名2,……;
注意:首先按照 列名1 進行排序,然後在按照 列名2 進行排序(當列名1有重複時才起作用,否則無效),需排序列依次類推,若 列名1 中所有的值都是唯一的,則不會按照 列名2 進行排序。
例如:(檢索city表所有,按照id 和 name進行預設排序)SELECT * from city ORDER BY id, name;排序首先按照 id 進行排序,當id有重複時才對 name 進行排序,若 id 中所有的值都是唯一的,則不會按照 name 進行排序。
指定排序方向
如果想要指定每個列的排序方向,必須對每個列指定是降序排序還是升序排序(預設為升序排序,不需要指定ASC關鍵字,只需要寫出列名即可),若不指定則預設為升序排序0。
命令:
SELECT 列名1,列名2,…… FROM 表名 ORDER BY 列名1 DESC,列名2,……;