跳到主要内容

SQL ORDER BY子句

提示
  1. 基本功能:SQL中的ORDER BY子句用于根据指定列的升序或降序对查询结果进行排序。
  2. 升序和降序排序:可以使用ASC关键字进行升序排序,使用DESC关键字进行降序排序。如果未指定,则默认为升序。
  3. 多列排序ORDER BY子句可以同时基于多个列进行排序,如先按一个列排序,如果出现重复值,则按第二个列排序,以此类推。

SQL 中的 ORDER BY 子句用于按升序或降序对结果集进行排序。

示例

SELECT *
FROM Customers
ORDER BY country;

这里,SQL 命令选择了 Customers 表中的所有行,然后按 country 进行升序排序。

SQL ORDER BY 语法

SQL ORDER BY 语句的语法是:

SELECT column1, column2, ...
FROM table
ORDER BY columnA, columnB, ...;

这里,

  • column1, column2, ... 是要包含在结果集中的列
  • table 是从中选择行的表的名称
  • columnA, columnB, ... 是基于这些列行将被排序的列

例如,

如何在 SQL 中使用 ORDER BY

ORDER BY ASC(升序排列)

我们可以使用 ASC 关键字明确地按升序对选定记录进行排序。例如,

SELECT *
FROM Customers
ORDER BY age ASC;

这里,SQL 命令选择了 Customers 表中的所有行,然后按 age 升序排序。

如何在 SQL 中使用带有 ASC 的 ORDER BY

注意: 即使没有 ASC 子句,默认情况下 ORDER BY 子句也会按升序排序结果集。

ORDER BY DESC(降序排列)

我们使用 DESC 关键字按降序对选定记录进行排序。例如,

SELECT *
FROM Customers
ORDER BY age DESC;

这里,SQL 命令选择了所有的客户,然后按 age 降序排序。

如何在 SQL 中使用带有 DESC 的 ORDER BY

使用多个列的 ORDER BY

我们也可以将 ORDER BY 与多个列一起使用。例如,

SELECT *
FROM Customers
ORDER BY first_name, age;

这里,SQL 命令选择了所有记录,然后按 first_name 排序。如果 first_name 重复出现多次,它会按 age 对这些记录进行排序。

如何在 SQL 中使用多个列的 ORDER BY

ORDER BYWHERE

我们也可以将 ORDER BYSELECT WHERE 子句一起使用。例如,

-- 并按 last_name 降序排列

SELECT last_name, age
FROM Customers
WHERE NOT country = 'UK'
ORDER BY last_name DESC;

这里,

  • SQL 命令首先从 Customers 表中选择 last_nameage 字段,如果它们的 country 不是 UK
  • 然后,选定的记录按它们的 last_name 降序排序。

如何在 SQL 中使用带有 WHERE 的 ORDER BY

注意: 当使用 WHERE 子句与 ORDER BY 时,WHERE 子句总是在前面。