大佬教程收集整理的这篇文章主要介绍了使用 SQL 在另一个表中插入已排序的行,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试对数据库表进行排序并将已排序的行插入到另一个表中。但是,当我查询新表时,它仍然有未排序的数据。
create table #unsorted (ID int,dt datE)
Insert into #unsorted values(1,'2019-01-01')
Insert into #unsorted values(2,'2018-12-15')
Insert into #unsorted values(3,'2017-01-01')
SELEct * from #unsorted -- unsorted data as expected
create table #sorted (ID int,dt datE)
insert into #sorted
SELEct ID,dt from #unsorted Order by dt asc
SELEct * from #sorted -- It should be sorted by date but it is not.
#sorted 表的预期结果:
3 2017-01-01
2 2018-12-15
1 2019-01-01
#sorted 表的实际结果:
1 2019-01-01
2 2018-12-15
3 2017-01-01
如何在插入到另一个表时对表中的数据进行物理排序?
你不能 - 数据库会按照它喜欢的方式对表的数据进行排序(通常表有一个集群键,存储顺序基于形成键的列的值) 。如果没有聚类键,存储顺序是不可预测的),即使这样,存储顺序也可能与输出顺序无关,具体取决于查询在其管道中执行的操作
根据您计划使用表数据的方式选择合适的集群键本身就是一门艺术,您的 DBA 会非常仔细地考虑这一点,对那些只输入 GUID 主键然后离开的开发人员表示不满SQL Server 受苦了 :)
以上是大佬教程为你收集整理的使用 SQL 在另一个表中插入已排序的行全部内容,希望文章能够帮你解决使用 SQL 在另一个表中插入已排序的行所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。