Вот ситуация, которую я пытаюсь решить:
У меня есть запрос, который может вернуть набор записей. Поле, по которому производится сортировка, может иметь несколько различных значений - в рамках данного вопроса мы скажем, что значение может быть A, B, C, D, E или Z
Теперь, в зависимости от результатов запроса, сортировка должна вести себя следующим образом: Если найдены только записи A-E, то их сортировка "естественным образом" - это нормально. Но если в результатах есть запись Z, то она должна быть первым результатом запроса, а остальные записи должны быть отсортированы в "естественном" порядке.
Например, если найдены A C D, то результат должен быть
A
C
D
Но если найдены A B D E Z, то результат должен быть отсортирован:
Z
A
B
D
E
Сейчас запрос выглядит так:
SELECT NAME, SOME_OTHER_FIELDS FROM TABLE ORDER BY NAME
Я знаю, что могу написать функцию сортировки, чтобы сделать то, что я хочу, но из-за того, как я использую результаты, я не могу использовать, потому что результаты обрабатываются сторонней библиотекой, которой я просто передаю SQL-запрос. Затем она обрабатывает результаты, и, похоже, нет никаких крючков для сортировки результатов и просто передачи результатов библиотеке. Она должна сама выполнить SQL-запрос, а у меня нет доступа к исходному коду библиотеки.
Так что для всех вас, гуру SQL, вы можете предоставить мне запрос, который сделает то, что я хочу?