sql把一张表按照标识id顺序插入另外一张表

我的数据库表示id为标识为是,但是数据库显示不是按照id顺序的,比如第一条id是1第二条id是2034,我想让他按照id顺序读取。我想到可以插入新表,insertinto... 我的数据库表示id为标识为是,但是数据库显示不是按照id顺序的,比如第一条id是1 第二条id是2034,我想让他按照id顺序读取。我想到可以插入新表,insert into Table2 select * from Table1 order by ID,但是插入的新表还是原来的顺序,如果可以的话最好在原表上处理,怎么把显示按照id顺序读取。 展开
 我来答
badkano
2013-11-08 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部
你看下你table1表里id字段是什么类型的,数字还是字符?还有,你数据库是什么?

-----------------补充-----------------
以sqlserver为例

我强烈怀疑你的id字段是字符型的字段

所以
insert into table2 select * from table1 order by cast(id as int)

也就是在对一表id排序的时候按照将字符转成数字的形式来排序,这样就可以啦
追问
我的id本来就是int型的数据
追答

你,我看下,查收一下,浏览器右上角

szm341
2013-11-08 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5133万
展开全部
你先查询一下select * from Table1 order by ID
如果id显示为标识的话,那么是递增的,1~2034的话,可能中间的数据被删除了
标识列被删除时是不会补足空缺的数值的
追问
恩 这个我知道,select * from Table1 order by ID是按照id顺序排列的。但是insert into就不是。
追答
那就是你的tb1跟tb2的id列都不是聚集索引导致的
一个表只有唯一的一个物理排序,就是聚集索引
即便你插入tb2时是按顺序插入的,但是数据会按聚集索引的顺序,物理的重新排列
这样你再展示的时候,默认查询时就只会以聚集索引列排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_hongyang
2013-11-08 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:855万
展开全部
你把数据库的默认索引改成ID,在数据库默认按ID排序
追问
怎么修改默认索引??
追答
默认索引,也就是聚合索引,你在SQL Management Studio 里面找到表,右击+号打开,找到索引,看看原先的聚合索引是哪个,改成你需要的就可以了,更改聚合索引要把原先的索引改成非聚合
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式