跳转到主要内容
模块 1 · 第 4 课(共 4)课程中的4/57~8 min
模块课程(4/4)

使用 ORDER BY 排序

SQL 不保证 SELECT 返回的行的顺序:如果您 想要一个确定性订单,您必须明确要求 ORDER BY:

SQL
SELECT <colonne>
FROM   <tabella>
[WHERE <condizione>]
ORDER BY <colonna> [ASC|DESC] [, <altra-colonna> [ASC|DESC] …];
  • ASC 是默认值:升序顺序(1 → 9、A → Z、旧 → 最近)。
  • DESC 排序 降序(9 → 1,Z → A,最近 → 旧)。
  • 您可以按多列排序:第二个条件打破第一个条件的联系。

示例

SQL
-- Dal più recente assunto al più vecchio:
SELECT first_name, last_name, hired_on
FROM employees
ORDER BY hired_on DESC;

-- Per dipartimento crescente, poi per stipendio decrescente:
SELECT *
FROM employees
ORDER BY department_id, salary DESC;

尝试一下

锻炼#sql.m1.l4.e1
尝试:0加载中...

提取所有员工的姓氏(last_name)和薪水(salary),从最高薪水到最低薪水排序。

正在加载编辑器...
显示提示

ORDER BY 薪水 DESC 将薪水最高的员工放在第一位。

3 次尝试后可用的解决方案

复习练习

锻炼#sql.m1.l4.e2
尝试:0加载中...

提取所有员工的姓氏(last_name)、部门ID(department_id)和薪水(salary),首先按department_id升序排序,并且在同一部门内,从最高薪水到最低薪水。

正在加载编辑器...
显示提示

您可以将用逗号分隔的两列传递给 ORDER BY,每列都有自己的 ASC 或 DESC。

3 次尝试后可用的解决方案