2012-08-31 62 views

回答

1

你必須使用像

select e_name 
from (select e_name,rownum rno from copy) 
where rno > 10 and rno < 16 

Sample Example

3

你不能使用像那樣的rownum,你需要將所有東西都包裝到派生表中:

select * 
from (
    select *, 
     rownum as rn 
    form your_table 
    order by some_column 
) 
where rn between 11 and 15 

您應該在內部查詢中使用order by,因爲否則您將無法獲得一致的結果。關係表中的行做而不是有任何順序,因此數據庫可以按照任何順序返回行,這感覺很合適。

請閱讀手冊瞭解更多詳情。您的查詢不起作用的原因在那裏記錄在案例中。

http://docs.oracle.com/cd/E11882_01/server.112/e26088/pseudocolumns009.htm#i1006297

0

先寫這將選擇這樣的所有行查詢: -

select ename from employee 

現在添加ROWNUM列到您的查詢,ROWNUM將幫助您確定您的查詢行的編號導致

select rownum r,ename from employee 

現在使你的查詢作爲子查詢和申請上 'R'(ROWNUM)

select * from (selecr rownum r, ename from employee) subq where subq.r between 11 and 15 
範圍