重複の可能性:
Oracleを使用したページング
11行からデータを選択してみます。そして、rownum>10のコピーからselecte_nameを使用しました。
これは何も表示されません..テーブルの11行目から15行目を選択するのを手伝ってください
重複の可能性:
Oracleを使用したページング
11行からデータを選択してみます。そして、rownum>10のコピーからselecte_nameを使用しました。
これは何も表示されません..テーブルの11行目から15行目を選択するのを手伝ってください
そのように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
次のように使用する必要があります
select e_name
from (select e_name,rownum rno from copy)
where rno > 10 and rno < 16
最初に、次のようにすべての行を選択するクエリを記述します。
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
分析関数 row_number() も使用できます。http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions137.htmを検討してください