【发布时间】:2022-11-10 00:31:54
【问题描述】:
我想在一个结果集中显示两个结果集,使用UNION
问题是,我希望它显示第一个表的所有记录,并且然后去下一个
但由于 SQL Server 自动按第一列对结果进行排序,因此最终结果按 ID 列排序,这两个表都有
两个表都有一列ID 为 1、2、3 等,因此UNION 的结果如下所示:
[table 1].[record 1]
[table 2].[record 1]
[table 1].[record 2]
[table 2].[record 2]
我希望它显示如下:
[table 1].[record 1]
[table 1].[record 2]
[table 1].[record 3]
[table 2].[record 1]
[table 2].[record 2]
[table 2].[record 3]
【问题讨论】:
-
“因为 SQL Server 自动按第一列对结果进行排序”不,它不会(不能保证顺序),除非您添加
ORDER BY。可能发生的情况是您拥有UNION而不是UNION ALL,在这种情况下,它需要对数据进行重复数据删除,因此它对其进行排序以执行此操作。
标签: sql-server tsql