首页 > 解决方案 > 如何按升序从另一个表中插入一个表中的记录

问题描述

我无法按升序从同一数据库中的另一个表中插入 SQL Server 表中的记录。

INSERT into SalaryDetails.dbo.SalaryAsc
SELECT *
FROM SalaryDetails.dbo.Salary as tb1
order by tb1.id

以下是我正在获取的内容:

预期的

id bvalues 应该按升序排列

获得:

但是以随机顺序获取 id 值

标签: sql-serversql-order-bysql-insert

解决方案


我不明白按特定顺序插入数据背后的逻辑,因为您可以select随时订购。

但是,如果order by插入期间真的很重要,您可以在表(新创建的)上添加聚集索引,以便order by基于聚集索引的表中的实际数据Columns,尝试以下查询来做同样的事情:

--Drop table SalaryDetails.dbo.SalaryAsc

SELECT * into SalaryDetails.dbo.SalaryAsc
FROM SalaryDetails.dbo.Salary as tb1
go

CREATE Clustered index CLU_SalaryAsc ON SalaryAsc (id asc);

推荐阅读