Die LAG -Funktion in SQL Server ist eine Windows -Funktion, die in SQL Server 2012 eingeführt wird. Mit dieser Funktion können Sie die Daten früherer Zeilen gemäß dem angegebenen Offset -Wert abrufen. Stellen Sie sich die LAG -Funktion als die Möglichkeit vor, aus früheren Zeilen aus der aktuellen Zeile auf Daten zugreifen zu können.
In der aktuellen Zeile können Sie beispielsweise auf die vorherige Zeile zugreifen, die zur aktuellen Zeile wird, und Sie können auf die vorherige Zeile zugreifen, usw.
In diesem Artikel lernen wir, wie Sie die LAG -Funktion auf dem SQL -Server anhand verschiedener Beispiele verwenden.
SQL Server lag () Funktion
Wir drücken die Syntax der Funktion als:
Verzögerung (Ausdruck, Offset [, Standard])Funktionsparameter und Rückgabewert
In der obigen Syntax haben wir die folgenden Parameter:
Die Funktion gibt den Datentyp des skalaren Ausdrucks zurück.
Beispiele für SQL Server LAG
Schauen wir uns ein praktisches Beispiel an, um besser zu verstehen, wie die Lag -Funktion verwendet wird. Beginnen wir mit dem Hinzufügen von Beispieldaten wie gezeigt:
Datenbank abgetastet werden;Der obige Abfragesatz sollte Daten als:
Führen Sie die LAG -Funktion in der DBNAME -Spalte aus, wie in der folgenden Beispielabfrage gezeigt:
Wählen Sie *, lag (dbname, 1) over (order by dbname) als vorheriger_db von lag_func;Die obige Abfrage gibt eine Ausgabe zurück als:
Hinweis, die erste Zeile enthält einen Nullwert, da sie keinen vorherigen Wert hat.
Beispiel 2:
Anstatt einen Nullwert zu erhalten, bei dem die Zeile keine vorherige Zeile enthält, können wir einen Standardwert festlegen, wie in der folgenden Beispielabfrage gezeigt:
Wählen Sie DBNAME, LAG (dbname, 1, 'n/a')Die obige Abfrage gibt eine ähnliche Ausgabe wie oben zurück. Anstelle von Null erhalten wir jedoch die angegebene Zeichenfolge.
Beispiel 3: benutzerdefinierter Offsetwert
Wir können die Werte auch für einen benutzerdefinierten Offset -Wert abrufen. Um beispielsweise den Wert von drei vorherigen Zeilen zu erhalten, können wir die Abfrage verwenden:
Wählen Sie DBNAME, LAG (dbname, 3, 'n/a')Der obige Beispielcode sollte das Ergebnis als:
Hier sind die ersten 3 Spalten null, da die Offset -Werte über den Bereich der verfügbaren Zeilen hinausgehen.
Beispiel 4: Partition von
Wir können logische Partitionen verwandter Daten unter Verwendung der Partition nach Klausel erstellen. Wir können dann die Lag -Funktion auf jede Partition anwenden.
Betrachten Sie das folgende Beispiel:
Wählen Sie DBNAME, Paradigma, LAG (DBNAME, 1, 'N/A')Die obige Abfrage gibt eine Beispielabfrage zurück als:
Die Abfrage erstellt 6 Partitionen, die auf dem Paradigma im obigen Ergebnis basieren. Auf jeder Partition holt die Lag -Funktion die vorherige Zeile ab.
Abschluss
In diesem Artikel wurde beigebracht.
Vielen Dank für das Lesen!