oracle中的默认检索顺序可能吗?

时间:2013-04-11 09:37:20

标签: mysql database oracle

让我们假设我创建了一个表并执行以下插入:

insert mango,4
insert apple,1
insert pear,3
insert banana,2

执行时:select fruit, id from fruit_table。给出以下结果:

**fruit    id**
apple    1
pear     3
mango    4
banana   2
...

这与它们最初插入的方式不同。不使用order by有没有办法指定(可能在创建表格或执行插入时)该位置相对于它们的插入?因此,在执行select fruit, id from fruit_table时,我会按照插入的顺序获取记录。

1 个答案:

答案 0 :(得分:1)

在Oracle中,您可以使用ORDER BY在表上定义视图。

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小提琴:http://sqlfiddle.com/#!4/1b24f/1

我无法想到这会是一个好主意的情况,我不会相信它对于除了微不足道的情况之外的其他任何事情都是万无一失的。