使用同一个表中的联合对结果进行排序

Rob*_*b M 0 sql oracle

我需要先在列表中显示一组结果,然后从下表中显示其余结果.

我已经尝试过SQL:如何使用UNION并通过特定的选择进行排序?但它似乎不适用于我的情况.

我的查询看起来像这样

SELECT * FROM (
    SELECT id, display as ordered
      FROM table
     WHERE id in (...) --these need to be first
    UNION
    SELECT id, display
      FROM table
     WHERE id not in (...) --these need to be at the end
)
ORDER BY ordered
Run Code Online (Sandbox Code Playgroud)

无论我做什么,我的结果都会以显示顺序返回.

我正在使用Oracle,顺便说一句.

谢谢您的帮助.

Vam*_*ala 5

您需要明确包含数字才能获得排序.此查询首先排序第一个结果集,然后排序第二个结果集.在每个组中,结果再次按id排序.(如果不需要,将其删除)

SELECT id,display FROM (
    SELECT id, display,1 as ordered
      FROM table
     WHERE id in (...) --these need to be first
    UNION
    SELECT id, display,2 
      FROM table
     WHERE id not in (...) --these need to be at the end
)
ORDER BY ordered,id
Run Code Online (Sandbox Code Playgroud)