Я пытаюсь выполнить SELECT
с предложением IN
, и я хотел бы иметь возможность возвращать результаты в том же порядке, что и элементы в моем списке для IN
. Например:
SELECT * FROM orders WHERE order_no IN ('B123', 'B483', 'B100', 'B932', ...);
и я бы хотел, чтобы они вернулись в том же порядке. В идеале было бы здорово, если бы у меня было такое утверждение:
SELECT * FROM orders WHERE order_no IN ('B123', 'B483', 'B100', 'B932', ...)
ORDER BY ('B123', 'B483', 'B100', 'B932', ...);
Я видел примеры запросов, использующих ключевые слова CASE
или DECODE
для определения своего рода пользовательского порядка. Но во всех этих примерах их порядок соответствовал заранее заданному набору параметров. Принимая во внимание, что мой заказ полностью зависит от того, что мой пользователь вводит для своих критериев поиска, так что может быть список из 2 вариантов или список из 100 для заказа по ...
Есть идеи? Некоторые функции Oracle, о которых я не знаю, или какой-то способ использования CASE
или DECODE
для динамического набора?