Begrenzung in Oracle

Begrenzung in Oracle

In den meisten Fällen umfassen Datenbanken Tausende bis Millionen von Datensätzen in einer Tabelle. Es kann entmutigend sein, alle Datensätze bei der Ausführung von Fragen manuell zu überprüfen.

Daher müssen Sie verschiedene Klauseln in SQL verwenden, wie z. B. bedingte Aussagen, Musteranpassungsfunktionen, Operatoren usw. Auch dann können Sie zahlreiche Datensätze haben, um sie zu sortieren.

Wir können die Grenzfunktionalität in SQL und anderen SQL-ähnlichen Dialekten verwenden, um die Anzahl der von einer bestimmten Abfrage zurückgegebenen Zeilen weiter zu begrenzen.

In diesem Beitrag werden ein Kurzformat zur Begrenzung der Anzahl der von einer bestimmten Oracle -Abfrage zurückgegebenen Datensätze erörtert. Denken Sie daran, dass in der Oracle -Datenbank keine Grenzklausel vorhanden ist, wie Sie in anderen Datenbanken wie MySQL, PostgreSQL usw. finden werden.

Oracle Rownum

Damit wir eine limitähnliche Klausel implementieren können, werden wir die Rownum-Funktion in SQL verwenden. Diese Funktion gibt die Anzahl der Zeilen in einem bestimmten Ergebnis zurück.

Lassen Sie uns untersuchen, wie wir diese Funktion verwenden können.

Beispiel Verwendung

Angenommen, wir haben eine Tabelle mit Mitarbeiterinformationen, wie im Bild unten gezeigt:

Problem

Angenommen, wir möchten die ersten fünf Spalten aus der obigen Tabelle abholen und den Rest ignorieren?

Lösung

Wir können eine Unterabfrage verwenden, wie im folgenden Snippet gezeigt:

wählen *
von (select Employee_id, First_name, last_name, Gehalt von Mitarbeitern bestellen nach Employee_id ASC)
wo rnewum <= 5;

In der obigen Abfrage definieren wir eine Unterabfrage mit der From -Klausel. Dann holt die Unterabfrage die Zielspalten ab und sortiert die Zeilen in aufsteigender Reihenfolge basierend auf dem Mitarbeiter_ID.

Schließlich definieren wir eine bedingte Erklärung, die sicherstellt, dass die zurückgegebene Anzahl von Zeilen kleiner oder gleich 5 ist. Dies zwingt die Anzahl der Aufzeichnungen aus der Abfrage, um bei fünf anzuhalten.

Ein Beispielausgang ist wie gezeigt:

Denken Sie daran, dass die Verwendung der Unterabfrage sicherstellt, dass die Zeilen in aufsteigender oder absteigender Reihenfolge sortiert sind. Wenn Sie also beispielsweise fünf zufällige Zeilen holen möchten, laufen Sie:

Wählen Sie Mitarbeiterin, First_name, last_name, Gehalt
von Mitarbeitern
wo rnewum <= 5;

Ausgang:

Aus der obigen Ausgabe bemerken Sie den Unterschied möglicherweise nicht. Wenn Sie jedoch die Abfrage ohne Auftrag per Klausel in ungeortierten Daten ausführen.

Abschluss

In diesem kurzen, aber wertvollen Tutorial wurde die Implementierung der Limit -Klausel in der Oracle -Datenbank mithilfe des Rownum -Werts untersucht.