Funkcja wiodąca serwera SQL

Funkcja wiodąca serwera SQL
W tym artykule przeprowadzimy Cię przez podstawy pracy z funkcją ledniej () na serwerze SQL. Omówimy to, co robi funkcja, jej składnia i praktyczne przykłady tego, jak z niej korzystać.

Funkcja wiodąca serwera SQL

Funkcja wiodąca w SQL Server to funkcja analityczna, która umożliwia dostęp do danych z kolejnego wiersza w tym samym zestawie wyników bez samodzielnego układania.

Funkcja umożliwia dostęp do wiersza z podawanym przesunięciem poprzedzającym bieżący wiersz. Na przykład za pomocą funkcji wiodących można znaleźć wiersz natychmiast po bieżącym wierszu, 10. wiersz z bieżącego wiersza itp.

Ta funkcja skłania twórców baz danych do porównań wierszy bez złożonych zadań, takich jak połączenie, za pomocą widoków itp.

Składnia funkcji

Poniżej przedstawia składnię funkcji lead () na serwerze SQL:

Lead (scalar_Expression [, offset], [domyślnie])
Over ([parition_by_clause] order_by_clause)

Kolejna lista to obsługiwane argumenty i ich funkcjonalność:

  1. scallar_Expression - ten argument oznacza wartość zwracaną na podstawie zdefiniowanego przesunięcia. Może to być wyrażenie dowolnego typu, który zwraca jedną wartość. Jednak wartość scalar_Expression nie może być inną funkcją analityczną/okna.
  2. Offset - To ustawia liczbę wierszy z bieżącej pozycji wiersza. Domyślnie funkcja przyniesie wiersz natychmiast przymiotnik do bieżącego wiersza. Podobnie wartość parametru przesunięcia nie może być funkcją analityczną ani liczbą liczbą ujemną.
  3. Domyślnie - ten parametr ustawia wartość domyślną, jeśli podana wartość przesunięcia wykracza poza zakres partycji docelowej. Domyślnie funkcja zwróci NULL.
  4. PARTICJA WY - klauzula parition_by określa reguły, które dzielą wyniki ustawione na różne sekcje. Funkcja jest następnie stosowana do każdej powstałej partycji.
  5. Zamówienie - określa to logiczną kolejność, w której stosowane są wiersze w każdej partycji.

Funkcja zwraca typ danych zdefiniowany w ekspresji skalar_. Jeśli zwrócona wartość jest null, funkcja zwraca null.

Przykładowe dane

Użyjmy przykładowych baz danych, aby ilustrują najlepiej, jak korzystać z funkcji wiodących. Najpierw użyj zapytań, jak pokazano poniżej:

Zrzuć bazę danych, jeśli istnieje zapasy;
Utwórz zapasy bazy danych;
Użyj zapasów;
Stół zrzutu, jeśli istnieje produkty;
Utwórz produkty stołowe (
Id Int Identity Klucz podstawowy nie null,
Product_name varchar (100),
producent varchar (50),
Ilość int nie null,
Cena int Domyślnie 0,
bit in_stock
);
Wstaw do produktów (nazwa_produktu, producent, ilość, cena, in_stock)
Wartości („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 "klasa S95B OLED 4K Smart TV ',„ Samsung', 900, 1999.90, 1),
(„Odyssey Ark Quantum Mini-Loded Gaming Screen”, „Samsung”, 50, 2999.90, 1);

Powstała tabela jest jak pokazana:

Przykład 1 - Korzystanie z funkcji SQL Server Lead () w zestawie wyników

Poniższy przykład wykorzystuje funkcję lead () do zwrócenia ceny następnego produktu.

wybierać
Nazwa produktu,
producent,
ilość,
cena,
Ołów (cena,
1)
zamówienie według ilości)
z
produkty;

Wynikowy stół:

Ponieważ nie ma wiersza z ostatniej kolumny, funkcja zwraca null.

Przykład 2 - Korzystanie z funkcji SQL Server Lead () w zestawie partycji

Możemy również pobrać kolejny produkt w danym partycji. Na przykład możemy podzielić powyższe dane na podstawie producenta i zastosować funkcję lead () w każdej partycji

Przykładową ilustracją jest jak pokazano:

wybierać
Nazwa produktu,
producent,
ilość,
cena,
Ołów (cena,
1)
partycja producenta
zamówienie według ilości)
z
produkty;

Powyższe zapytanie powinno podzielić wiersze na podstawie producenta i uzyskać kolejną cenę dla wartości w każdej partycji.

W takim przypadku istnieją trzy partycje.

Wniosek

W tym poście zrozumiałeś elementy konstrukcyjne funkcji lead () na serwerze SQL. Nauczyłeś się również, jak korzystać z funkcji lead () w zestawie wyników i partycji.