ORDER BY 用於對查詢結果集進行排序。支援單欄位、多欄位、升序(ASC)、降序(DESC),是報表、分頁、Top-N 查詢的基礎。
SELECT column_name, column_name FROM table_name ORDER BY column_name, column_name ASC|DESC;
ASC(升序:小到大、A-Z、舊到新)。DESC 為降序(大到小、Z-A、新到舊)。ORDER BY 子句必須置於 SELECT 陳述式末端(LIMIT/OFFSET 之前)。+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘寶 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鳥教程 | https://www.runoob.com/ | 4689 | CN | | 4 | 微博 | https://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | +----+--------------+---------------------------+-------+---------+
SELECT * FROM Websites ORDER BY alexa;
輸出結果:

alexa 從小到大:1(Google)、3(Facebook)、13(淘寶)、20(微博)、4689(菜鳥教程)。
SELECT * FROM Websites ORDER BY alexa DESC;
輸出結果:

SELECT * FROM Websites ORDER BY country, alexa;
輸出結果:

先按 country 分組(CN 在前、USA 在後,視字元編碼),組內再按 alexa 升序。
SELECT name, alexa * 10 AS score FROM Websites ORDER BY score DESC;
SELECT * FROM Websites ORDER BY CASE country WHEN 'CN' THEN 1 WHEN 'USA' THEN 2 ELSE 3 END, alexa;
ORDER BY col NULLS FIRST / NULLS LAST(PostgreSQL、Oracle 12c+、SQL Server 支援)。ORDER BY ISNULL(col), col 讓 NULL 排前;ORDER BY col IS NULL, col 讓 NULL 排後。ORDER BY RAND()ORDER BY RANDOM()ORDER BY NEWID()ORDER BY DBMS_RANDOM.VALUEORDER BY 欄位若有索引,且查詢無 WHERE 或 WHERE 可用同索引,可避免 Filesort,直接索引掃描輸出。LIMIT 配合索引排序可大幅提升 Top-N 查詢效能。ORDER BY 卻假設結果有序:關聯式資料庫不保證無 ORDER BY 時的輸出順序。ORDER BY 導致翻頁資料重複或遺漏。