Урок 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;
 
Объяснение: Мы выбрали всех клиентов и отсортировали их по количеству символов в имени в порядке возрастания.