2015.09.04 18:41/吉田
カテゴリー: Oracle
MySQLやPostgreSQLで取得したorder by後のデータの上位n件目までを抜き出すには
select A from TABLE_NAME order by A limit n
と書きますが、Oracleで
select A from TABLE_NAME where ROWNUM <= n order by A;
と書いてもMySQLやPostgreSQLと同様のデータは抽出できません。
しかし少し工夫して、
select * from (select A, ROWNUM as RN from TABLE_NAME order by A)
where RN <= n order by RN
として実行すると、Oracleでも抽出できます。