Как в SQL отсортировать результаты запроса по возрастанию (от меньшего к большему)?

«Как в SQL отсортировать результаты запроса по возрастанию (от меньшего к большему)?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В SQL для сортировки результатов по возрастанию используется оператор ORDER BY с модификатором ASC (ascending). Поскольку ASC является порядком по умолчанию, его часто опускают.

Синтаксис:

SELECT column1, column2
FROM table_name
ORDER BY column1 ASC; -- ASC можно не писать

Практические примеры:

  1. Сортировка по одному столбцу:
    -- Вывести сотрудников, отсортированных по зарплате от меньшей к большей
    SELECT name, salary FROM employees ORDER BY salary;
  2. Сортировка по нескольким столбцам:
    -- Сначала по отделу (по алфавиту A-Z), затем по зарплате (по возрастанию)
    SELECT department, name, salary
    FROM employees
    ORDER BY department, salary;
  3. Сортировка по убыванию (DESC): Для обратного порядка используется DESC.
    SELECT name, salary FROM employees ORDER BY salary DESC;
  4. Сортировка по выражению или порядковому номеру столбца:

    -- По выражению
    SELECT name, salary, salary * 1.1 as projected_salary
    FROM employees
    ORDER BY projected_salary;
    
    -- По номеру столбца в SELECT (не рекомендуется для долгосрочной поддержки)
    SELECT name, salary FROM employees ORDER BY 2; -- Сортировка по salary (2-й столбец)

Почему ORDER BY важен? Без него база данных не гарантирует никакого конкретного порядка возвращаемых строк, даже если кажется, что данные идут по ключу.