Я пытаюсь заказать свою таблицу двумя паразитами, один из которых - это «статус», где у меня есть отлично работающий порядок CASE, а второй столбец «ID», где я просто хочу заказать результаты дел по их идентификатору таблицы, чтобы иметь новейший результат сверху в отсортированном случае.SQL ORDER BY CASE + ORDER BY ID DESC
Thats мой текущий запрос:
SELECT ID, status
FROM omv_tabelle
ORDER BY CASE
WHEN status = 'ANMELDUNG' THEN '1'
WHEN status = 'KUNDE' THEN '2'
WHEN status = 'OMV_ANTRAG' THEN '3'
WHEN status = 'ABLEHNUNG' THEN '4' END ASC,
ID DESC
Я понятия не имею, как добавить идентификатор в этой сортировкой, а не разрушать дела funktionality
мой выходной ток выглядит следующим образом:
407 KEIN_INTERESSE
406 KEIN_INTERESSE
405 KEIN_INTERESSE
397 KEIN_INTERESSE
396 KEIN_INTERESSE
411 ANMELDUNG
1 ANMELDUNG
6 KUNDE
5 KUNDE
4 KUNDE
3 KUNDE
2 KUNDE
394 ABLEHNUNG
393 ABLEHNUNG
392 ABLEHNUNG
391 ABLEHNUNG
390 ABLEHNUNG
Таким образом, порядок статусов неверен:/
It shoul Б:
411 ANMELDUNG
1 ANMELDUNG
6 KUNDE
5 KUNDE
4 KUNDE
3 KUNDE
2 KUNDE
394 ABLEHNUNG
393 ABLEHNUNG
392 ABLEHNUNG
391 ABLEHNUNG
390 ABLEHNUNG
407 KEIN_INTERESSE
406 KEIN_INTERESSE
405 KEIN_INTERESSE
397 KEIN_INTERESSE
396 KEIN_INTERESSE
Смотрите отредактированный ответ. Если он все еще не удовлетворяет вам, тогда объясните, что не так с вашим заказом ... –
Каждый пояснитель должен быть объяснен. Я представил подробный вопрос с моим текущим исходом. –
Нет нисходящего от меня. Просто замечание: запрос и вывод не совпадают. «KEIN_INTERESSE» наступит последним, потому что он получит неявный ключ сортировки NULL. Я полагаю, что у вас все еще есть статус «ELSE», который сначала получит «KEIN_INTERESSE», потому что Oracle рассматривает «1»> «K». (И статус «1 x ABGELEHNT» будет находиться между «1» и «2». Плохая идея создать ключ сортировки для некоторых статусов и использовать статус как ключ сортировки для остальных :-) Это просто что происходит. Как это сделать правильно показано в ответе Гиорги Накэури. –