SQL Server LEAD()-Funktion

Sql Server Lead Funktion



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

SQL Server-Lead-Funktion

Die Lead-Funktion in SQL Server ist eine Analysefunktion, mit der Sie ohne Selbstverknüpfung auf Daten aus einer nachfolgenden Zeile in derselben Ergebnismenge zugreifen können.

Die Funktion ermöglicht Ihnen den Zugriff auf eine Zeile mit einem bestimmten Offset vor der aktuellen Zeile. Mit der Lead-Funktion können Sie beispielsweise die Zeile unmittelbar nach der aktuellen Zeile, die 10. Zeile der aktuellen Zeile usw. finden.







Diese Funktion bringt Datenbankentwickler dazu, Zeilenvergleiche ohne komplexe Aufgaben wie Verknüpfen, Verwenden von Ansichten usw. durchzuführen.



Funktionssyntax

Im Folgenden wird die Syntax der Funktion lead() in SQL Server dargestellt:



LEAD ( Skalar_Ausdruck [, Offset], [Standard])
OVER ( [ partition_by_clause ] order_by_clause )

Die folgende Liste enthält die unterstützten Argumente und ihre Funktionalität:





  1. scalar_expression – dieses Argument bezeichnet den Rückgabewert basierend auf dem definierten Offset. Dies kann ein Ausdruck beliebigen Typs sein, der einen einzelnen Wert zurückgibt. Der Wert von skalar_ausdruck kann jedoch keine andere Analyse-/Fensterfunktion sein.
  2. offset – dies legt fest, wie viele Zeilen von der aktuellen Zeilenposition der Wert abgerufen wird. Standardmäßig ruft die Funktion das Adjektiv der Zeile sofort zur aktuellen Zeile ab. Ebenso darf der Wert des offset-Parameters keine analytische Funktion oder negative Ganzzahl sein.
  3. default – Dieser Parameter legt den Standardwert fest, wenn der angegebene Offset-Wert außerhalb des Geltungsbereichs der Zielpartition liegt. Standardmäßig gibt die Funktion NULL zurück.
  4. PARTITION BY – die partition_by-Klausel definiert die Regeln, die die Ergebnismenge in verschiedene Abschnitte unterteilen. Die Funktion wird dann auf jede resultierende Partition angewendet.
  5. ORDER BY – dies definiert die logische Reihenfolge, in der die Zeilen in jeder Partition angewendet werden.

Die Funktion gibt den in skalar_ausdruck 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 die Verwendung der Lead-Funktion am besten zu veranschaulichen. Verwenden Sie zunächst die Abfragen wie unten gezeigt:



DATENBANK LÖSCHEN, WENN Bestand vorhanden;

Datenbankinventar erstellen;

Inventar VERWENDEN;

DROP TABLE IF EXISTS-Produkte;

CREATE TABLE-Produkte (
id int Identität 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 (Produktname, Hersteller, Menge, Preis, auf Lager)
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 Serie 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 Curved Gaming Screen“, „Samsung“, 50, 2999,90, 1);

Die resultierende Tabelle sieht wie folgt aus:

Beispiel 1 – Verwendung der SQL Server-Lead()-Funktion über eine Ergebnismenge

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

auswählen
Produktname,
Hersteller,
Anzahl,
Preis,
Blei (Preis,
1) über (
Bestellung nach Menge)
aus
Produkte;

Ergebnistabelle:

Da ab der letzten Spalte keine Zeile vorhanden ist, gibt die Funktion NULL zurück.

Beispiel 2 – Verwenden der SQL Server-Funktion lead() über einem Partitionssatz

Wir können auch das nächste Produkt in einer bestimmten Partition abrufen. Beispielsweise können wir die obigen Daten basierend auf dem Hersteller partitionieren und die Funktion lead() in jeder Partition anwenden

Eine Beispielabbildung sieht wie folgt aus:

auswählen
Produktname,
Hersteller,
Anzahl,
Preis,
Blei (Preis,
1) über (
Partitionierung nach Hersteller
Bestellung nach Menge)
aus
Produkte;

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

In diesem Fall gibt es drei Partitionen.

Fazit

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