SQL:如何使用 UNION 并按特定选择排序?

新手上路,请多包涵

我有两个选择:

 SELECT id FROM a -- returns 1,4,2,3
UNION
SELECT id FROM b -- returns 2,1

我收到正确的行数,例如: 1,4,2,3

但我想要 b 首先表结果: 2,1,4,32,1,3,4

我怎样才能做到这一点?

(我正在使用甲骨文)

原文由 Topera 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 509
2 个回答

使用@Adrian 提示,我找到了解决方案:

我正在使用 GROUP BYCOUNT 。我尝试将 DISTINCTORDER BY 一起使用,但收到错误消息: “不是 SELECTed 表达式”

 select id from
(
    SELECT id FROM a -- returns 1,4,2,3
    UNION ALL -- changed to ALL
    SELECT id FROM b -- returns 2,1
)
GROUP BY id ORDER BY count(id);

感谢阿德里安和 这个 博客。

原文由 Topera 发布,翻译遵循 CC BY-SA 3.0 许可协议

WIITH subq as (SELECT id FROM a ORDER BY id)
SELECT id FROM subq
UNION
SELECT id FROM b

原文由 Med Abdelfettah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进