我尝试了下面给出的sql查询:
SELECT * FROM (SELECT *
FROM TABLE_A ORDER BY COLUMN_1)DUMMY_TABLE
UNION ALL
SELECT * FROM TABLE_B
它会导致以下错误:
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
我需要在 union all 中使用 order by 。我该如何实现这个目标?
最佳答案
SELECT *
FROM
(
SELECT * FROM TABLE_A
UNION ALL
SELECT * FROM TABLE_B
) dum
-- ORDER BY .....
但是如果您希望将 Table_A
中的所有记录放在结果列表的顶部,则可以添加可用于排序的用户定义值,
SELECT *
FROM
(
SELECT *, 1 sortby FROM TABLE_A
UNION ALL
SELECT *, 2 sortby FROM TABLE_B
) dum
ORDER BY sortby
关于sql - 如何在sql中使用order by和union all?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15470191/