Ответ
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.