Задать вопрос
@sys_user

Как спомощью SQL(oracle) отсортировать записи по статусу?

Есть вот такая таблица
619224aca277c623279977.png
Как отсортировать эту таблицу чтобы вначале были продукты в статусе "cancelled" а дальше все остальные в любом порядке? В голову приходит только использовать union (первый запрос выберет записи в статусе "cancelled" а второй запрос записи без записей в статусе "cancelled")
Есть ли способы сделать кастомную сортировку?
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    SQL для начинающих: с нуля до сертификата Oracle
    2 недели
    Далее
  • SQL Online
    Курс продвинутого SQL
    3 недели
    Далее
  • Учебный центр IBS
    DB-028 Язык Oracle PL/SQL: расширенные возможности
    1 неделя
    Далее
Решения вопроса 2
BorLaze
@BorLaze
Java developer
Оракла под рукой нет, но идея, думаю, понятна.

SELECT name, status, price, 
   CASE status WHEN 'cancelled' THEN 0
   ELSE 1 END as pos
FROM TABLE
ORDER BY pos;
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
SELECT * 
FROM test
ORDER BY CASE status WHEN 'cancelled'
                     THEN 1
                     ELSE 2
                     END;

https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=30ad...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы