SQL Lead

SQL Lead

Mit der SQL -Lead -Funktion können Sie auf die nächste Zeile aus der aktuellen Zeile bei einem bestimmten Offset zugreifen. Kurz gesagt, mit der Lead -Funktion können Sie über die aktuelle Zeile zugreifen. Durch Angeben des Offsetwerts können Sie auf die nächsten 1, 2, 3 usw. zugreifen., Zeilen aus dem aktuellen.

Es ist das Gegenteil der Funktion von LAG (), mit der Sie auf frühere Zeilen zugreifen können.

SQL Lead ()

Die Funktionssyntax ist wie gezeigt:

Lead (value_expression, offset [, Standard])
ÜBER (
[Partition von partition_expression]
Bestellung durch Sort_expression [ASC | Desc]
);

Das Folgende sind die unterstützten Argumente:

  1. value_expression - Gibt den Rückgabewert der vorhergehenden Zeile an. Der Ausdruck muss auf einen einzelnen Wert bewertet werden.
  2. Offset - Gibt an, wie viele Zeilen von der aktuellen Zeile zum Zugriff weitergeleitet werden.
  3. Standard - Legt den Standardwert fest, wenn sich der Offset außerhalb des Geltungsbereichs der Partition befindet. Standardmäßig wird der Wert auf null gesetzt.
  4. Partition von - Gibt an, wie die Daten aufgeteilt werden sollen.
  5. Sortieren nach - Legt das Bestellformat für die Zeilen in jeder Partition fest.

Beispiel 1

Angenommen, wir haben eine Tabelle mit Mitarbeiterinformationen wie gezeigt:

Um auf den nächsten Mitarbeiternamen zuzugreifen, können wir wie gezeigt eine Abfrage ausführen:

Wählen Sie ID, full_name, Lead (full_name) über (
Partition nach Kategorie
Bestellung durch ID ASC
) Als Next_aMployee
Von Mitarbeitern;

Der obige Code partitioniert die Daten basierend auf der Kategorie. Anschließend wird der nächste Name in der Partition mit der Lead -Funktion abgerufen.

Die resultierende Ausgabe ist wie gezeigt:

Beispiel 2

Wenn in einer bestimmten Spalte (außerhalb der Grenze) keine nächste Zeile vorhanden ist, setzt die Funktion den Wert auf NULL, wie oben gezeigt.

Um einen Standardwert für jeden Außenscope-Zugriff festzulegen, können wir Folgendes tun:

Wählen Sie ID, full_name, Lead (full_name, 1, 'n/a') über (
Partition nach Kategorie
Bestellung durch ID ASC
) Als Next_aMployee
Von Mitarbeitern;

Wir setzen den Standardwert auf 'n/a'. Dies sollte jeden in der Ausgabe dargestellten Wert außerhalb des gebundenen Werts ersetzen:

NOTIZ: Das Einstellen des Offsets auf 1 ähnelt dem Wert eines Werts.

Beispiel 3

Angenommen, Sie möchten auf die nächsten beiden Zeilen aus der aktuellen Zeile zugreifen? Wir können dies tun, indem wir den Offset -Wert auf 2 festlegen.

Eine Beispielabfrage ist unten dargestellt:

Wählen Sie ID, full_name, Lead (full_name, 2, 'n/a') über (
Partition nach Kategorie
Bestellung durch ID ASC
) Als Next_aMployee
Von Mitarbeitern;

Diese Abfrage gibt die nächsten beiden Zeilen in jeder Partition zurück, wie unten gezeigt: