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

使用 ORDER BY 排序

SQL does not guarantee the order of the rows returned by a SELECT: if you want a deterministic order, you have to ask for it explicitly with ORDER BY:

SQL
SELECT <colonne>
FROM   <tabella>
[WHERE <condizione>]
ORDER BY <colonna> [ASC|DESC] [, <altra-colonna> [ASC|DESC] …];
  • ASC is the default: ascending order (1 → 9, A → Z, old → recent).
  • DESC sorts descending (9 → 1, Z → A, recent → old).
  • You can sort by multiple columns: the second criterion breaks ties of the first.

Examples

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;

Try it

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

Extract last name (last_name) and salary (salary) of all employees, sorted from the highest salary to the lowest.

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

ORDER BY salary DESC puts the highest-paid employees first.

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

Review exercise

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

Extract last name (last_name), department_id and salary (salary) of all employees, sorted first by department_id ascending and, within the same department, from the highest salary to the lowest.

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

You can pass two columns separated by a comma to ORDER BY, each with its own ASC or DESC.

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