Skip to main content
eLearner.app
Module 1 · Lesson 4 of 44/57 in the course~8 min
Module lessons (4/4)

Sorting with 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

Exercise#sql.m1.l4.e1
Attempts: 0Loading…

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

Loading editor…
Show hint

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

Solution available after 3 attempts

Review exercise

Exercise#sql.m1.l4.e2
Attempts: 0Loading…

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.

Loading editor…
Show hint

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

Solution available after 3 attempts