当前位置: 代码迷 >> Sql Server >> 怎么根据某字段排序后新增一个排序后的表
  详细解决方案

怎么根据某字段排序后新增一个排序后的表

热度:77   发布时间:2016-04-24 09:29:34.0
如何根据某字段排序后新增一个排序后的表
本帖最后由 skysenlin 于 2015-01-08 11:02:02 编辑
一个表
create table employee (empid int ,deptid int ,salary decimal(10,2))
insert into employee values(11,10,5500.00)
insert into employee values(2,10,4500.00)
insert into employee values(32,20,1900.00)
insert into employee values(4,20,4800.00)
insert into employee values(54,40,6500.00)
insert into employee values(6,40,14500.00)
insert into employee values(75,40,44500.00)
insert into employee values(8,50,6500.00)
insert into employee values(9,50,7500.00)

新建一个表根据empid排序,或者原表能根据empid排序
我写的语句
select *  into 新表 from (select * from employee order by empid)

------解决思路----------------------
当你无序查表的时候,并不会直接按表的逻辑顺序查,而会直接读取物理顺序,具体物理储存顺序怎么处理,我还没很清楚

你试下以下脚本
create table employee (empid int ,deptid int ,salary decimal(10,2))

insert into employee values(11,10,5500.00)

insert into employee values(2,10,4500.00)

insert into employee values(32,20,1900.00)

insert into employee values(4,20,4800.00)

insert into employee values(54,40,6500.00)

insert into employee values(6,40,14500.00)

insert into employee values(75,40,44500.00)

insert into employee values(8,50,6500.00)

insert into employee values(9,50,7500.00)

--SELECT ROW_NUMBER()OVER(ORDER BY empid)RN, * into 新表 from employee order by empid
SELECT IDENTITY(INT,1,1)ID, * into 新表 from employee order by empid
SELECT * FROM 新表
这里面的ID就是插入的顺序
  相关解决方案