1

重複の可能性:
Oracleを使用したページング

11行からデータを選択してみます。そして、rownum>10のコピーからselecte_nameを使用しました。

これは何も表示されません..テーブルの11行目から15行目を選択するのを手伝ってください

4

4 に答える 4

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

于 2012-08-31T06:42:59.053 に答える
1

次のように使用する必要があります

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

サンプル例

于 2012-08-31T06:42:42.470 に答える
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
于 2012-08-31T08:43:27.383 に答える
0

分析関数 row_number() も使用できます。http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions137.htmを検討してください

于 2012-08-31T07:38:19.580 に答える