![]() |
1
0
如果你不从表格中选择?
或者在您的查询中,将所有联合更改为union all。
union和union all之间的区别在于union将删除重复的行。
而union all只是将所选结果集粘在一起。
第三种选择是简单地从一个insert语句更改为多个insert语句。
每个值插入一个。从而完全避免了联合。
|
![]() |
2
5
SQL Server将您的行存储为无序集。数据点可能是连续的,也可能不是连续的,它们可能是“顺序”,数据是在INSERT语句中指定的。 当您查询数据时,引擎将按照优化器确定的最有效的顺序检索行。不能保证每次查询数据时订单都是相同的。 保证结果集顺序的唯一方法是在select语句中包含一个显式的order by子句。 请参阅此答案,以更深入地讨论为什么会出现这种情况。 Default row order in SELECT query - SQL Server 2008 vs SQL 2012 通过对insert语句使用select/union选项,您将创建一个无序集,SQL Server将其作为一个集而不是作为一系列输入进行接收。如果需要按顺序应用标识值,请将插入分隔为离散语句。更好的是,如果行编号很重要,不要让它成为偶然。在插入时显式为行编号。 |
![]() |
3
3
SQL表确实表示无序集。但是,
由于在
那一定要用
请注意,它还使用
|
![]() |
4
0
你的问题是你没有按照你想的顺序把它们放进去。union仅是不同的值,它通常会对值进行排序以方便distinct。单独运行select语句,您将看到。
如果插入时使用
|
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |