可能重复:
联合查询的结果顺序
我正在使用 SQL Server 2008。
我有 2 个选择加入使用UNION
. 第二个选择添加一行。我希望这一行始终显示在底部。我怎样才能做到这一点?
您可以在联合查询的每个部分中包含另一列并使用它进行排序:-
select col1, col2, col3 from
(
select col1, col2, col3, 1 as sortorder from table1
union
select col1, col2, col3, 2 as sortorder from table2
) as d
order by sortorder, col1
这会将第二个 select 语句中的行放在第一个语句之后,其中它们将按 col1 的顺序排列。
请注意,当您在内部查询之外进行排序时,使用 union 而不是 union all 的唯一原因是如果您想消除重复项。在这种情况下,重复项必须来自其中一个查询,而不是两个查询共有,因为 sortorder 列使它们在两个查询中不同。所以你可能会想要使用 union all。