我正在使用SQL Server 2008。
我有2个选择使用UNION
加入。第二个选择添加一行。我希望这一行始终显示在底部。我怎么能这样做?
答案 0 :(得分:5)
您可以在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。