Ok, hay algunas respuestas sobre cómo hacer esto. Pero todas las respuestas presuponen que la consulta está seleccionando todas. Si tiene una selección distinta, los métodos ya no funcionan.PostgreSQL ORDER BY valores en la cláusula IN()
Vea aquí para ese método: Simulating MySQL's ORDER BY FIELD() in Postgresql
Básicamente tengo
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
Por supuesto, esto rompe y dice
"PGError: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list"
¿Hay alguna manera de ordenar los resultados de la consulta en PostgreSQL por el orden de los valores en la cláusula IN?
"las expresiones _ORDER BY deben aparecer en la lista de selección_" - así que mueva la expresión a la lista SELECCIONAR :) – Karolis