-- вывести список книг отсортированный по id,

Пронумеруйте строки по id и поменяйте сортировочные позиции 2 и 3 через CASE. Это перестановка строк в результате, а не изменение данных таблицы.

Короткий ответ

Что ответить на собеседовании

Пронумеруйте строки по id и поменяйте сортировочные позиции 2 и 3 через CASE. Это перестановка строк в результате, а не изменение данных таблицы.

Подробный разбор

Ответ с пояснениями

Условие

-- вывести список книг отсортированный по id, -- но в выводе поменять 2 и 3 строки местами:

-- 1 Мастер и Маргарита 100 -- 3 Золотой теленок 50 -- 2 Двенадцать стульев 200 -- 4 Евгений Онегин 250 -- 5 Повести Белкина 90 -- 6 Три мушкетера 60

Ответ

Пронумеруйте строки по id и поменяйте сортировочные позиции 2 и 3 через CASE. Это перестановка строк в результате, а не изменение данных таблицы.

Для условной таблицы books(id, title, price):

WITH ranked AS (
    SELECT id, title, price,
           ROW_NUMBER() OVER (ORDER BY id) AS rn
    FROM books
)
SELECT id, title, price
FROM ranked
ORDER BY CASE rn WHEN 2 THEN 3 WHEN 3 THEN 2 ELSE rn END;

Предполагается уникальность id. Решение меняет именно вторую и третью строки даже при пропусках идентификаторов; исходные записи остаются нетронутыми.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее