我有一个带有主键 MY_PK 的表 MY_TABLE。然后,我有一个有序主键列表,例如 (17,13,35,2,9)。
现在我想用这些主键检索所有行,并以与给定键列表相同的方式保持行的顺序。
我最初做的是:
SELECT * FROM MY_TABLE WHERE MY_PK IN (:my_list)
但是返回行的顺序是随机的,不再与给定键的顺序相对应。有没有办法做到这一点?我唯一想到的是制作许多 SELECT 语句并将它们与 UNION 连接,但是我的主键列表可能很长,并且包含数百甚至数千个键。我想到的替代方法是在应用程序中重新排序行,但我更喜欢不需要这样做的解决方案。