SQL Server Lead -Funktion

SQL Server Lead -Funktion
In diesem Artikel führen wir Sie durch die Grundlagen der Arbeit mit der Lead () -Funktion in SQL Server. Wir werden abdecken, was die Funktion, ihre Syntax und praktische Beispiele für die Verwendung.

SQL Server Lead -Funktion

Die Lead-Funktion in SQL Server ist eine analytische Funktion.

Mit der Funktion können Sie bei einem gegebenen Offset vor der aktuellen Zeile auf eine Zeile zugreifen. Beispielsweise finden Sie mit der Lead -Funktion die Zeile unmittelbar nach der aktuellen Zeile, die 10. Zeile aus der aktuellen Zeile usw.

Diese Funktion treibt Datenbankentwickler an, um Zeilenvergleiche ohne komplexe Aufgaben wie Verbindungen, Verwendung von Ansichten usw. durchzuführen.

Funktionssyntax

Im Folgenden werden die Syntax der Lead () -Funktion in SQL Server dargestellt:

Lead (scalar_expression [, offset], [Standard])
Over ([partition_by_clause] order_by_clause)

Die nachfolgende Liste sind die unterstützten Argumente und ihre Funktionen:

  1. scalar_expression - Dieses Argument bezeichnet den Rückgabewert basierend auf dem definierten Versatz. Dies kann ein Ausdruck eines jeden Typs sein, der einen einzelnen Wert zurückgibt. Der Wert der scalar_expression kann jedoch keine weitere Analytik-/Fensterfunktion sein.
  2. Offset - Dies legt die Anzahl der Zeilen aus der aktuellen Zeilenposition fest, die der Wert erzielt hat. Standardmäßig holt die Funktion die Zeile sofort Adjektiv an die aktuelle Zeile ab. In ähnlicher Weise kann der Wert des Offset -Parameters keine analytische Funktion oder eine negative Ganzzahl sein.
  3. Standard - dieser Parameter legt den Standardwert fest, wenn der angegebene Offset -Wert über den Umfang der Zielpartition hinausgeht. Standardmäßig wird die Funktion NULL zurückgeben.
  4. Partition von - Die Klausel partition_by definiert die Regeln, die das Ergebnis in verschiedene Abschnitte einteilen. Die Funktion wird dann auf jede resultierende Partition angewendet.
  5. Reihenfolge durch - Dies definiert die logische Reihenfolge, in der die Zeilen in jeder Partition angewendet werden.

Die Funktion gibt den in der scalar_expression definierten Datentyp zurück. Wenn der zurückgegebene Wert null ist, gibt die Funktion null zurück.

Beispieldaten

Lassen Sie uns einige Beispieldatenbanken verwenden, um am besten zu veranschaulichen, wie die Lead -Funktion verwendet wird. Verwenden Sie zunächst die Abfragen wie unten gezeigt:

Datenbank fallen, wenn existiert Inventar;
Datenbankinventar erstellen;
Inventar verwenden;
Tisch fallen, wenn Produkte existiert;
Tischprodukte erstellen (
Id Int Identity Primärschlüssel nicht null,
product_name varchar (100),
Hersteller Varchar (50),
Menge int nicht null,
Preis int Standard 0,
in_stock bit
);
In Produkte einfügen (Product_Name, Hersteller, Menge, Preis, In_Stock)
Werte ("Apple iPad Air", "Apple", 100, 569.99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony PlayStation 5', 'Sony', 500, 499.99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Series 6', 'Apple', 459, 379.90, 1),
("Apple Airpods Pro", "Apple", 200, 199.99, 1),
('55 "Klasse S95B OLED 4K Smart TV ',' Samsung ', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED-Gaming-Bildschirm', 'Samsung', 50, 2999.90, 1);

Die resultierende Tabelle ist wie gezeigt:

Beispiel 1 - Verwenden von SQL Server Lead () -Funktion über einen Ergebnissatz

Das folgende Beispiel verwendet die Funktion Lead (), um den Preis des nächsten Produkts zurückzugeben.

wählen
Produktname,
Hersteller,
Menge,
Preis,
Lead (Preis,
1) über (
Ordnung nach Menge)
aus
Produkte;

Resultierende Tabelle:

Da es keine Zeile aus der letzten Spalte gibt, gibt die Funktion null zurück.

Beispiel 2 - Verwenden der Funktion SQL Server Lead () über einen Partitionssatz

Wir können das nächste Produkt auch in einer bestimmten Partition holen. Zum Beispiel können wir die obigen Daten basierend auf dem Hersteller aufteilt und die Funktion Lead () in jeder Partition anwenden

Eine Beispielillustration ist wie gezeigt:

wählen
Produktname,
Hersteller,
Menge,
Preis,
Lead (Preis,
1) über (
Partition durch Hersteller
Ordnung nach Menge)
aus
Produkte;

Die obige Abfrage sollte die Zeilen basierend auf dem Hersteller teilen und den nächsten Preis für die Werte in jeder Partition abrufen.

In diesem Fall gibt es drei Partitionen.

Abschluss

In diesem Beitrag haben Sie die Bausteine ​​der Lead () -Funktion in SQL Server verstanden. Sie haben auch gelernt, wie man die Lead () -Funktion über ein Ergebnis- und Partitionssatz verwendet.