Alternativen zu LIMIT und OFFSET für Paging in Oracle
Ich bin der Entwicklung einer web-Anwendung und müssen Seite bestellt Ergebnisse. Ich normalerweise verwenden-GRENZE/OFFSET für diesen Zweck.
Welches ist der beste Weg, um die Seite bestellt Ergebnisse in Oracle? Ich habe gesehen, einige Proben mit rownum-und Unterabfragen. Ist das der Weg? Könnten Sie mir ein Beispiel für die übersetzung dieser SQL Oracle:
SELECT fieldA,fieldB
FROM table
ORDER BY fieldA
OFFSET 5 LIMIT 14
(Ich bin mit Oracle 10g, für was es Wert ist)
Dank!
Antwort:
Über den link unten von karim79, das SQL würde das so Aussehen:
SELECT * FROM (
SELECT rownum rnum, a.*
FROM(
SELECT fieldA,fieldB
FROM table
ORDER BY fieldA
) a
WHERE rownum <=5+14
)
WHERE rnum >=5
InformationsquelleAutor der Frage danielpradilla | 2010-05-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die
rownum
pseudospalte handelt, um die Ergebnisse einzuschränken. Siehe hier:http://www.oracle.com/technology/oramag/oracle/06-sep/o56asktom.htmlhttp://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html
InformationsquelleAutor der Antwort karim79
Da bist du auf 10g, sollten Sie in der Lage sein, zur Vereinfachung der ROWNUM Ansatz mit analytischen Funktionen
InformationsquelleAutor der Antwort Justin Cave
Als von oracle 12c, Sie könnte verwenden der top-N-Abfragen.
http://www.oracle-base.com/articles/12c/row-limiting-clause-for-top-n-queries-12cr1.php
InformationsquelleAutor der Antwort Montri M