Oracle 中数据存储如何实现按id排列
例如有表cost,执行select*fromcost结果如下怎样操作可以使下次执行select*fromcost时结果是按照id从小到大排列的也就是说怎样使表中数据的存储...
例如有表cost,执行select * from cost结果如下
怎样操作可以使下次执行select * from cost时结果是按照id从小到大排列的
也就是说怎样使表中数据的存储本身就是按照id从小到大排列
想补充的是,id已经设置主键了,我不想重新建一张表,没有解决办法了么? 展开
怎样操作可以使下次执行select * from cost时结果是按照id从小到大排列的
也就是说怎样使表中数据的存储本身就是按照id从小到大排列
想补充的是,id已经设置主键了,我不想重新建一张表,没有解决办法了么? 展开
5个回答
2015-12-16 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
排序的话,可以通过order by 来实现。
sql:select * from tablename order by ID;
备注:默认的是升序(ASC),也可以让其降序(desc)进行排列。
sql:select * from tablename order by ID desc;
sql:select * from tablename order by ID;
备注:默认的是升序(ASC),也可以让其降序(desc)进行排列。
sql:select * from tablename order by ID desc;
2013-10-18
展开全部
数据存储在行上有个ROWID的概念,可以看作是物理位置,一般查询会根据查询到的rowid的顺序排序.
所以如果存储实现按ID排序,可以先把这些数据排好了顺序再插进一个表里,后续再查询时,实际是按rowid排序,但是可以看到是按ID排的了
insert into cost_new select * from cost order by id
select * from cost_new
所以如果存储实现按ID排序,可以先把这些数据排好了顺序再插进一个表里,后续再查询时,实际是按rowid排序,但是可以看到是按ID排的了
insert into cost_new select * from cost order by id
select * from cost_new
追问
这个cost_new 应该是一张新的表吧 我不能重新建一张表,这个问题可以解决么
追答
数据存放位置,物理位置已经在定了,固定在block里了,要改动就是找个临时地方把数据存起来,然后再排好序插入进去. 不建表就先排序导成EXCEL或文本,然后在导入.
想到的另外一个方法,可以自行测试下,写一个事务,必须是一个事务内,把数据保存在临时表,然后删除原表数据,再把临时表导进去,必须是一个事务内.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建一张临时表吧
create table tmp_cost as select * from cost order by id
create table tmp_cost as select * from cost order by id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-18
展开全部
你这个表, 把 id 设置为主键看看, 不知道行不行...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from cost order by id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询