Урок 19: Сортировка данных: Команда ORDER BY
В этом уроке мы рассмотрим, как использовать команду ORDER BY для сортировки данных в SQL. Команда ORDER BY позволяет упорядочивать результаты запроса по одному или нескольким столбцам в порядке возрастания или убывания.
Синтаксис команды ORDER BY
Синтаксис команды ORDER BY следующий:
SELECT столбцы
FROM таблица
ORDER BY столбец [ASC|DESC];
По умолчанию, если не указано иначе, сортировка выполняется в порядке возрастания (ASC). Рассмотрим пример, который выбирает всех клиентов из таблицы customers и сортирует их по имени:
SELECT *
FROM customers
ORDER BY name;
Результат выполнения
customer_id |
name |
age |
| 2 |
Alice |
35 |
| 3 |
Bob |
40 |
| 1 |
John Doe |
28 |
| 4 |
Jane Smith |
32 |
Сортировка по нескольким столбцам
Команда ORDER BY позволяет сортировать данные по нескольким столбцам. Рассмотрим пример, который сортирует клиентов сначала по стране, а затем по возрасту в порядке убывания:
SELECT *
FROM customers
ORDER BY country, age DESC;
Результат выполнения
customer_id |
name |
country |
age |
| 4 |
Jane Smith |
Canada |
32 |
| 3 |
Bob |
USA |
40 |
| 1 |
John Doe |
USA |
28 |
| 2 |
Alice |
UK |
35 |
Сортировка с использованием алиасов
При выполнении запросов с использованием алиасов для столбцов, можно также использовать алиасы в команде ORDER BY. Рассмотрим пример:
SELECT name AS customer_name, age
FROM customers
ORDER BY customer_name;
Результат выполнения
customer_name |
age |
Alice |
35 |
Bob |
40 |
Jane Smith |
32 |
John Doe |
28 |
Сортировка с использованием функций
Можно использовать функции в команде ORDER BY для выполнения сортировки. Рассмотрим пример, который сортирует клиентов по длине их имени:
SELECT name, LENGTH(name) AS name_length
FROM customers
ORDER BY LENGTH(name);
Результат выполнения
name |
name_length |
Bob |
3 |
Alice |
5 |
John Doe |
8 |
Jane Smith |
10 |
Упражнения
Упражнение 1: Сортировка по возрастанию
Напишите запрос для выбора всех сотрудников из таблицы employees и сортировки их по зарплате в порядке возрастания.
Решение:
SELECT *
FROM employees
ORDER BY salary ASC;
Объяснение: Мы выбрали всех сотрудников и отсортировали их по зарплате в порядке возрастания.
Упражнение 2: Сортировка по убыванию
Напишите запрос для выбора всех продуктов из таблицы products и сортировки их по цене в порядке убывания.
Решение:
SELECT *
FROM products
ORDER BY price DESC;
Объяснение: Мы выбрали все продукты и отсортировали их по цене в порядке убывания.
Упражнение 3: Сортировка по нескольким столбцам
Напишите запрос для выбора всех заказов из таблицы orders и сортировки их сначала по дате заказа, а затем по статусу в порядке возрастания.
Решение:
SELECT *
FROM orders
ORDER BY order_date, status ASC;
Объяснение: Мы выбрали все заказы и отсортировали их сначала по дате заказа, а затем по статусу в порядке возрастания.
Упражнение 4: Сортировка с использованием функции
Напишите запрос для выбора всех клиентов из таблицы customers и сортировки их по количеству символов в имени в порядке возрастания.
Решение:
SELECT name, LENGTH(name) AS name_length
FROM customers
ORDER BY LENGTH(name) ASC;
Объяснение: Мы выбрали всех клиентов и отсортировали их по количеству символов в имени в порядке возрастания.