Данные в таблицах базы данных хранятся неупорядоченно. Выполнив один и тот же запрос несколько раз можно получить один и тот же результат, но строки результата будут отсортированы по-разному.
Для гарантированной сортировки строк нужно в конце SQL запроса добавить предложение ORDER BY. Например, получим информацию о магазинах, отсортированную по названию:
SELECT store_id, name
FROM store
ORDER BY name
| store_id | name |
|---|---|
| 900 | Big |
| 600 | Umi |
| 300 | Адалин |
| 301 | Адалин-family |
| ... | ... |
Чтобы отсортировать в обратном порядке, необходимо после поля для сортировки указать ключевое слово DESC (по умолчанию ASC - по возрастанию). Например отсортируем магазины по названию по убыванию:
SELECT store_id, name
FROM store
ORDER BY name DESC
| store_id | name |
|---|---|
| 800 | Универсам |
| 201 | Сатурн |
| 100 | Пионер |
| 500 | Март |
| 200 | Марс |
| ... | ... |
Иногда необходимо при сортировке разбить данные на какие-то группы, а потом отсортировать данные уже в рамках каждой группы. Например отсортируем сотрудников по должностям, а в рамках каждой должности по имени:
SELECT employee_id,
rank_id,
last_name
FROM employee
ORDER BY rank_id, last_name
| employee_id | rank_id | last_name |
|---|---|---|
| 8 | CEO | Корсаков |
| 7 | CHIEF | Вершинина |
| 1 | CHIEF | Иванов |
| 2 | CHIEF | Маккормик |
| 3 | CHIEF | Матвеева |
В общем случае столбцов для сортировки может быть сколько угодно.