Oracle 中数据存储如何实现按id排列

例如有表cost,执行select*fromcost结果如下怎样操作可以使下次执行select*fromcost时结果是按照id从小到大排列的也就是说怎样使表中数据的存储... 例如有表cost,执行select * from cost结果如下

怎样操作可以使下次执行select * from cost时结果是按照id从小到大排列的
也就是说怎样使表中数据的存储本身就是按照id从小到大排列
想补充的是,id已经设置主键了,我不想重新建一张表,没有解决办法了么?
展开
 我来答
千锋教育
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;
匿名用户
2013-10-18
展开全部
数据存储在行上有个ROWID的概念,可以看作是物理位置,一般查询会根据查询到的rowid的顺序排序.
所以如果存储实现按ID排序,可以先把这些数据排好了顺序再插进一个表里,后续再查询时,实际是按rowid排序,但是可以看到是按ID排的了

insert into cost_new select * from cost order by id

select * from cost_new
追问
这个cost_new 应该是一张新的表吧  我不能重新建一张表,这个问题可以解决么
追答
数据存放位置,物理位置已经在定了,固定在block里了,要改动就是找个临时地方把数据存起来,然后再排好序插入进去.  不建表就先排序导成EXCEL或文本,然后在导入.

想到的另外一个方法,可以自行测试下,写一个事务,必须是一个事务内,把数据保存在临时表,然后删除原表数据,再把临时表导进去,必须是一个事务内.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
25435331
2013-10-18 · TA获得超过121个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:109万
展开全部
建一张临时表吧

create table tmp_cost as select * from cost order by id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-18
展开全部
你这个表, 把 id 设置为主键看看, 不知道行不行...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
射手幽灵伊
2013-10-18 · TA获得超过2716个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1973万
展开全部
select * from cost order by id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式