|
|
|
|
先頭から指定件数のレコードを取得する(ROWNUM) |
|
スポンサード リンク
●先頭から指定件数のレコードを取得するにはROWNUMを使用します。
例1) 列「dept_id」が'D02'のレコードを先頭から10件検索する
|
select *
from emp
where
dept_id = 'D02'
and rownum <= 10 |
●n件目から指定件数のレコードを取得するには、インラインビューとROWNUMを使用します。
これは、インラインビューを使用しないと、以下の(2)の例のように、1件目(ROWNUM=1)のレコードが検索結果に含まれない場合に、正しく処理されないためです。
(1)1件目(ROWNUM=1)のレコードが検索結果に含まれる場合
|
SQL> select emp_id,emp_name from emp where rownum >= 1;
EMP_I EMP_NAME
----- ----------
E01 なまえ1
E02 なまえ2
E03 なまえ3
3行が選択されました。
|
(2)1件目(ROWNUM=1)のレコードが検索結果に含まれない場合
|
SQL> select emp_id,emp_name from emp where rownum > 1;
レコードが選択されませんでした。
|
※1件目(ROWNUM=1)のレコードが検索結果に含まれないので正しく処理されません。
例2)
列「dept_id」が'D02'のレコードを11件目から20件目まで検索する
|
select *
from
( select
rownum as row_id, emp_id, dept_id, emp_name
from emp
where
dept_id ='D02')
where
row_id between 11 and 20 |
※上記のように、from句でインラインビューを使用して、rownumを変数row_idに代入して処理しています。
このように処理すれば、1件目(ROWNUM=1)のレコードが検索結果に含まれない場合でも正しく処理されます。
スポンサード リンク
|
|
|
|
|
|