Heim > Datenbank > MySQL-Tutorial > Wie beschränken Sie die Zeile, die nach der Bestellung zu Oracle -Abfragen führen?

Wie beschränken Sie die Zeile, die nach der Bestellung zu Oracle -Abfragen führen?

Susan Sarandon
Freigeben: 2025-01-25 08:37:10
Original
502 Leute haben es durchsucht

How to Limit Row Results in Oracle Queries After Ordering?

Begrenzen Sie die Anzahl der Ergebniszeilen nach der Sortierung in der Oracle-Datenbank

Viele Datenbankbenutzer verlassen sich auf die LIMIT-Klausel von MySQL, um nach dem Sortieren einen bestimmten Zeilenbereich abzurufen. Allerdings unterstützt Oracle selbst keine ähnliche Funktionalität. Oracle verwendet die Pseudospalte ROWNUM, die vor ORDER BY berechnet wird. Dieses Verhalten kann zu unerwarteten Ergebnissen führen, wenn versucht wird, die Anzahl der Zeilen basierend auf der Sortierung zu begrenzen.

Um eine MySQL-ähnliche Einschränkungsfunktionalität in Oracle zu erreichen, besteht eine Lösung darin, Unterabfragen zu verwenden. Betrachten Sie das folgende Beispiel:

<code class="language-sql">SELECT *
FROM (
    SELECT *
    FROM emp
    ORDER BY sal DESC
)
WHERE ROWNUM <= 5;</code>
Nach dem Login kopieren

Diese Abfrage ruft die ersten 5 Zeilen in absteigender Reihenfolge nach der Sal-Spalte ab.

Für mehr Flexibilität können Sie die folgenden Methoden verwenden:

<code class="language-sql">SELECT *
FROM (
    SELECT *, ROWNUM AS rnum
    FROM (
        SELECT *
        FROM emp
        ORDER BY sal DESC
    ) AS a
)
WHERE rnum >= :MIN_ROW_TO_FETCH AND rnum <= :MAX_ROW_TO_FETCH;</code>
Nach dem Login kopieren

Mit dieser Unterabfrage können Sie Unter- und Obergrenzen für das Abrufen von Zeilen angeben.

Darüber hinaus führt Oracle 12c (12.1) eine neue Syntax ein:

<code class="language-sql">-- 获取前10个结果
SELECT *
FROM sometable
ORDER BY name
FETCH FIRST 10 ROWS ONLY;

-- 获取第20-30个结果行
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;</code>
Nach dem Login kopieren

Diese Syntax bietet eine sauberere Möglichkeit, die Anzahl der Ergebniszeilen basierend auf der Sortierung zu begrenzen.

Das obige ist der detaillierte Inhalt vonWie beschränken Sie die Zeile, die nach der Bestellung zu Oracle -Abfragen führen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage