Для чего используется оператор ORDER BY в SQL?

«Для чего используется оператор ORDER BY в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ORDER BY — это предложение SQL, которое сортирует результирующий набор запроса по одному или нескольким столбцам или выражениям.

Синтаксис и особенности:

  • Направление сортировки:
    • ASC (Ascending) — по возрастанию (используется по умолчанию).
    • DESC (Descending) — по убыванию.
  • Сортировка по нескольким полям: Записи упорядочиваются последовательно по указанным критериям.
  • Позиция в запросе: ORDER BY является последним предложением (после WHERE, GROUP BY, HAVING), за исключением LIMIT/OFFSET (которые часто следуют за ним).

Примеры:

-- 1. Сортировка по одной колонке (убывание)
SELECT name, salary FROM employees ORDER BY salary DESC;

-- 2. Сортировка по нескольким колонкам
SELECT name, department, salary FROM employees
ORDER BY department ASC, salary DESC;
-- Сначала по отделам от А до Я, затем внутри отдела по зарплате от высокой к низкой.

-- 3. Сортировка по выражению или порядковому номеру столбца в SELECT
SELECT name, salary * 12 AS annual_income FROM employees
ORDER BY annual_income DESC; -- или ORDER BY 2 DESC

Использование в Java (JDBC):

String sql = "SELECT id, product_name, price FROM products " +
             "WHERE category = ? ORDER BY price ASC, product_name ASC";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, "Electronics");
ResultSet rs = stmt.executeQuery();
// Результаты будут отсортированы

В JPA (JPQL) и Criteria API также поддерживается ORDER BY.