程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 SQL 在另一个表中插入已排序的行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 SQL 在另一个表中插入已排序的行?

开发过程中遇到使用 SQL 在另一个表中插入已排序的行的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 SQL 在另一个表中插入已排序的行的解决方法建议,希望对你解决使用 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,请注明来意。