Oracleで表示する件数を絞って表示する方法
Oracleでは件数を絞ってSELECTできないと言われたので、
rownumを用いてSELECTする方法メモ。
表示する件数を決めて表示するSQL
select * from 表名 where rownum <= 件数
rownumを使う場合の注意点
order by句を使う場合、rownumの条件で抽出された値の中でソート処理が実施されてしまうため、
望んだ結果が得られない。
例えば、
select username from dba_users where account_status='OPEN' and rownum <= 5 order by username asc;
ではダメで、dba_usersから5件SELECTした結果をソートしてしまう。
正しくソートした結果を表示するためには、下記の通り検索する表を副問い合わせで
呼び出す必要がある。
select username from ( select username from dba_users where account_status='OPEN' order by username asc) where rownum <= 5;