让我们假设我创建了一个表并执行以下插入:
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
时,我将按照它们插入的顺序获得记录。
在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 Fiddle: http://sqlfiddle.com/#!4/1b24f/1
我想不出在什么情况下这是个好主意,而且我也不相信它除了在一些琐碎的情况下是万无一失的。