在 psql 中(至少在 v9 中),如果我这样做
select id from users where id in (2, 1, 1);
and
select id from users where id in (1, 2);
它们都以相同的顺序返回结果(并消除重复项),例如:1, 2
。我该如何返回2, 1, 1
而不是在第一个查询中?
你不能;顺序将取决于执行计划、表的物理顺序和其他因素。
您可以使用数组和显式来做到这一点ORDER BY
:
SELECT u.id
FROM users AS u
JOIN unnest(ARRAY[2,2,1]) WITH ORDINALITY AS arr(elem, ord)
ON u.id = arr.elem
ORDER BY arr.ord;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)