假设我创建一个表并执行以下插入:
insert mango,4
insert apple,1
insert pear,3
insert banana,2
执行时:从fruit_table中选择水果,id
。给出以下结果:
**fruit id**
apple 1
pear 3
mango 4
banana 2
...
这与它们最初插入的方式不同。在不使用 order by 的情况下,是否有一种方法可以指定(也许在创建表或执行插入时)该位置相对于它们的插入?因此,当执行 selectfruit, id fromfruit_table
时,我会按照插入的顺序获取记录。
最佳答案
在 Oracle 中,您可以使用 ORDER BY 定义表的 View 。
create table fruit_table (
id number,
name varchar2(30));
create view fruit
as
select *
from fruit_table
order by id;
insert into fruit values (4,'mango');
insert into fruit values (1,'apple');
insert into fruit values (3,'pear');
insert into fruit values (2,'banana');
select * from fruit_table;
select * from fruit;
SQL fiddle :http://sqlfiddle.com/#!4/1b24f/1
我想不出在什么情况下这是一个好主意,而且我不相信它对于除琐碎情况之外的任何事情都是万无一失的。
关于mysql - oracle中的默认检索顺序可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15945421/