Данные в таблицах базы данных хранятся неупорядоченно. Выполнив один и тот же запрос несколько раз можно получить один и тот же результат, но строки результата будут отсортированы по-разному.
Для гарантированной сортировки строк нужно в конце 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 | Матвеева |
В общем случае столбцов для сортировки может быть сколько угодно.