在 SQL Server 中,当使用 UNION 操作符连接多个查询结果时,默认的 ORDER BY 行为是不保证结果集的顺序。换句话说,如果没有明确指定 ORDER BY 子句,则返回的结果集可能会随着查询的执行而改变。
如果您需要按照特定的顺序返回结果,则应该使用 ORDER BY 子句来指定排序规则。例如,如果您想按照某个列的升序排序,可以使用以下语句:
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2
ORDER BY column1 ASC
这将返回一个按照 column1 升序排序的结果集。如果您需要按照多个列排序,可以使用逗号分隔的列名列表,例如:
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2
ORDER BY column1 ASC, column2 DESC
这将返回一个按照 column1 升序和 column2 降序排序的结果集。请注意,如果您使用 UNION ALL 而不是 UNION,则结果集中可能会包含重复的行。
领取专属 10元无门槛券
手把手带您无忧上云