300行前後を返すオラクルで選択を行いたいのですが、最後の12個のレジストリが必要です。クエリは次のとおりです。
(SELECT *
FROM series
ORDER BY odata DESC) estatisticas
WHERE ponteiro = 50 AND lotus = 30
次のようなもの:
select * from
( select estatisticas, rownum rn
(SELECT *
FROM series
ORDER BY odata DESC) estatisticas
WHERE ponteiro = 50 AND lotus = 30
order by odata asc) where rownum <=12
編集:クエリ用に更新しました。内側のクエリとは逆に、ケースの昇順で並べ替えて、最後の12個を取得できるようにします。
Oracle RDBMS は、クエリの結果セットを作成するときに、rownumと呼ばれる疑似列を使用します。結果の各行には、0 から始まる昇順で番号が付けられます。条件は次のように評価できます。
select job_name from dba_scheduler_jobs where rownum < 10;
これにより、最初に見つかった 10 行が返されます。
rownum は、レコードがデータベースからフェッチされた後、クエリの order by 句の前に評価されることに注意してください。
そのため、クエリは次のようになります。
SELECT * FROM
((SELECT * FROM series
ORDER BY odata DESC) estatisticas
WHERE ponteiro = 50 AND lotus = 30 [ASC/DESC])
WHERE rownum < 12;
取得する行に応じて、order by 句を昇順または降順に設定する必要があります。