В базе данных есть не сортированная таблица CITIES со списком всех городов РФ, состоящая из двух колонок:
————————
| ID | CITY |
————————
В колонке CITY записаны названия городов РФ в случайном порядке. В колонке ID содержатся некие уникальные идентификаторы городов.
Напишите SQL запрос, который вернет из таблицы CITIES список всех городов РФ, отсортированных в следующем порядке:
1. Первое место — Москва
2. Второе место — Санкт-Петербург
3. Все последующие места — остальные города РФ, отсортированные в алфавитном порядке от А до Я
Создаём таблицу
create table MIRAVILD.CITIES
(ID integer, CITY VARCHAR2(256), constraint pk_id primary key (id)) organization index tablespace miravild_data;
Добавляем тестовые данные
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(1, 'Мурманск');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(2, 'Севастополь');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(3, 'Семферополь');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(4, 'Москва');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(5, 'Санкт-Петербург');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(6, 'Архангельск');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(7, 'Саранск');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(8, 'Самара');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(9, 'Пенза');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(10, 'Курск');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(11, 'Астрахань');
INSERT INTO miravild.cities c
(c.id, c.city)
VALUES
(12, 'Ахтубинск');
COMMIT WORK;
/
Вариант запроса
SELECT c.city
FROM miravild.cities c
ORDER BY CASE
WHEN c.city = 'Москва' THEN
1
WHEN c.city = 'Санкт-Петербург' THEN
2
END,
c.city ASC;