Значения ORDER BY PostgreSQL в предложении IN ()

Хорошо, есть несколько ответов о том, как это сделать. Но все ответы предполагают, что запрос выбирает все. Если у вас есть отдельный выбор, методы больше не работают.

См. Этот метод здесь: Моделирование MySQL ORDER BY FIELD () в Postgresql

В основном у меня есть

SELECT DISTINCT id 
FROM items 
WHERE id IN (5,2,9) 
ORDER BY
 CASE id
  WHEN 5 THEN 1 
  WHEN 2 THEN 2
  WHEN 9 THEN 3
 END

Конечно, это ломается и говорит

"PGError: ERROR: для SELECT DISTINCT выражения ORDER BY должны появляются в списке выбора "

Есть ли способ упорядочить результаты запроса в PostgreSQL по порядку значений в предложении IN?

5
задан Community 23 May 2017 в 12:16
поделиться