SQL ORDER BY 关键字详细讲解
ORDER BY
关键字在 SQL 中用于对查询结果集进行排序。你可以按照一个或多个列对结果进行排序,并且可以指定是按照升序(ASC)还是降序(DESC)排列。
语法
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
column1, column2, ...
:要排序的字段名称,可以为多个字段。ASC
:表示按升序排序(默认行为)。DESC
:表示按降序排序。
代码示例
假设我们使用的是名为 "Websites" 的表,该表包含了不同的网站信息,包括它们的名称、URL、Alexa 排名、国家等。
ORDER BY 实例
下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "alexa" 列的升序排序:
SELECT * FROM Websites
ORDER BY alexa;
执行输出结果:
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.com/ | 1 | USA |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 3 | 11教程 | http://www.22.com/ | 4689 | CN |
+----+--------------+---------------------------+-------+---------+
这个查询返回了表中所有网站记录,并按照 Alexa 排名从低到高排序。
ORDER BY DESC 实例
下面的 SQL 语句从 "Websites" 表中选取所有网站,并按照 "alexa" 列的降序排序:
SELECT * FROM Websites
ORDER BY alexa DESC;
执行输出结果:
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 3 | 11教程 | http://www.22.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 1 | Google | https://www.google.com/ | 1 | USA |
+----+--------------+---------------------------+-------+---------+
这个查询返回了表中所有网站记录,并按照 Alexa 排名从高到低排序。
结合多个列排序
你也可以按照多个列进行排序。例如,如果你想首先按照国家升序排序,然后在每个国家内部按照 Alexa 排名降序排序,可以使用以下 SQL 语句:
SELECT * FROM Websites
ORDER BY country ASC, alexa DESC;