好的,有一些关于如何做到这一点的答案。但是所有的答案都假设查询是全选的。如果您有不同的选择,则这些方法将不再有效。
有关该方法,请参见此处:Simulating MySQL's ORDER BY FIELD() in 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:错误:对于 SELECT DISTINCT,ORDER BY 表达式必须出现在选择列表中”
有什么方法可以按照 IN 子句中值的顺序对 PostgreSQL 中的查询结果进行排序?