Heim >Datenbank >MySQL-Tutorial >Wie funktioniert ROWNUM in Oracle-Paginierungsabfragen?
Die Abfrage Select * From Person Where rownum > 100 and rownum < 200
gibt einen leeren Ergebnissatz zurück, da ROWNUM den Zeilen Nummern zuweist, beim Abruf. Die WHERE
-Klausel filtert nach ROWNUM Nummern zugewiesen wurden. Zeilen mit ROWNUM größer als 100 werden erst berücksichtigt, nachdem die ersten 100 Zeilen bereits verarbeitet und ihnen ROWNUM-Werte zugewiesen wurden.
Die Top-n-Zeilenbegrenzungsfunktion von Oracle 12c bietet einen einfacheren Ansatz für die Paginierung. Die Syntax Select ... FROM ... WHERE rownum BETWEEN lowerBound AND upperBound
wählt Zeilen innerhalb des angegebenen Bereichs direkt aus, sodass keine Unterabfragen erforderlich sind.
Um die Anzeige der ROWNUM-Spalte zu vermeiden, listen Sie die gewünschten Spalten explizit in der SELECT
-Liste der äußeren Abfrage auf. Alternativ können Sie eine Ansicht erstellen, um die Abfrage zu kapseln, oder den NOPRINT
-Befehl von SQL*Plus verwenden, um unerwünschte Ausgaben zu unterdrücken.
Eine genaue Paginierung mit ROWNUM hängt von der korrekten Abfragekonstruktion ab. Ordnen Sie die Ergebnisse unbedingt anhand einer eindeutigen Kennung (Primärschlüssel), um eine konsistente Zeilenauswahl auf allen Seiten sicherzustellen. Während die Sortierung nach ROWNUM selbst FIRST_ROWS(N)
nicht negiert, garantiert die Verwendung einer eindeutigen Kennung den Abruf der beabsichtigten Zeilen.
Das obige ist der detaillierte Inhalt vonWie funktioniert ROWNUM in Oracle-Paginierungsabfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!