SQL Server blyfunksjon

SQL Server blyfunksjon
I denne artikkelen vil vi lede deg gjennom det grunnleggende om å jobbe med Lead () -funksjonen i SQL Server. Vi vil dekke hva funksjonen gjør, dens syntaks og praktiske eksempler på hvordan du bruker den.

SQL Server blyfunksjon

Leadfunksjonen i SQL-serveren er en analytisk funksjon som lar deg få tilgang til data fra en påfølgende rad i samme resultatsett uten en selv-join.

Funksjonen lar deg få tilgang til en rad ved en gitt forskyvning før gjeldende rad. For eksempel ved å bruke blyfunksjonen, kan du finne raden umiddelbart etter den nåværende raden, den 10. rad fra gjeldende rad, etc.

Denne funksjonen driver databaseutviklere for å utføre radsammenligninger uten komplekse oppgaver som sammenføyning, ved hjelp av visninger osv.

Funksjonssyntaks

Følgende skildrer syntaks for Lead () -funksjonen i SQL Server:

Bly (scalar_expression [, offset], [standard])
Over ([partition_by_clause] order_by_clause)

Den påfølgende listen er de støttede argumentene og deres funksjonalitet:

  1. Scalar_expression - Dette argumentet betegner returverdien basert på den definerte forskyvningen. Dette kan være et uttrykk av enhver type som returnerer en enkelt verdi. Verdien av Scalar_expression kan imidlertid ikke være en annen analytisk/vindusfunksjon.
  2. Offset - Dette setter hvor mange rader fra gjeldende radposisjon verdien hentet. Som standard vil funksjonen hente raden umiddelbart adjektiv til gjeldende rad. Tilsvarende kan ikke verdien av forskyvningsparameteren være en analytisk funksjon eller et negativt heltall.
  3. Standard - Denne parameteren angir standardverdien hvis den medfølgende forskyvningsverdien er utenfor omfanget av målpartisjonen. Som standard vil funksjonen returnere null.
  4. Partisjon av - Partition_by Clause definerer reglene som deler resultatet som er satt inn i forskjellige seksjoner. Funksjonen blir deretter brukt på hver resulterende partisjon.
  5. Bestilling av - Dette definerer den logiske rekkefølgen som radene i hver partisjon blir brukt.

Funksjonen returnerer datatypen som er definert i Scalar_expression. Hvis verdien som returneres er null, returnerer funksjonen null.

Eksempeldata

La oss bruke noen eksempler på databaser for å illustrere best hvordan du bruker blyfunksjonen. Bruk først spørsmålene som vist nedenfor:

Drop Database hvis eksisterer inventar;
Opprette databasebeholdning;
Bruk varelager;
Slippbord hvis det eksisterer produkter;
Lag bordprodukter (
id int identitet primær nøkkel ikke null,
produktnavn varchar (100),
Produsenten varchar (50),
mengde int ikke null,
pris int standard 0,
in_stock bit
);
sett inn i produkter (produktnavn, produsent, mengde, pris, in_stock)
Verdier ('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-ledet buet spillskjerm', 'Samsung', 50, 2999.90, 1);

Det resulterende tabellen er som vist:

Eksempel 1 - Bruke SQL Server Lead () -funksjon over et resultatsett

Eksemplet nedenfor bruker Lead () -funksjonen for å returnere prisen på neste produkt.

plukke ut
Produktnavn,
produsent,
mengde,
pris,
bly (pris,
1) over (
bestill etter mengde)
fra
Produkter;

Resulterende bord:

Siden det ikke er noen rad fra den siste kolonnen, returnerer funksjonen null.

Eksempel 2 - Bruke SQL Server Lead () -funksjonen over et partisjonssett

Vi kan også hente neste produkt i en gitt partisjon. For eksempel kan vi partisjonere dataene ovenfor basert på produsenten og anvende Lead () -funksjonen i hver partisjon

Et eksempel på illustrasjonen er som vist:

plukke ut
Produktnavn,
produsent,
mengde,
pris,
bly (pris,
1) over (
Partisjon av produsenten
bestill etter mengde)
fra
Produkter;

Spørringen over skal dele radene basert på produsenten og hente neste pris for verdiene i hver partisjon.

I dette tilfellet er det tre partisjoner.

Konklusjon

I dette innlegget forsto du byggesteinene til Lead () -funksjonen i SQL Server. Du lærte også hvordan du bruker bly- () -funksjonen over et resultat og partisjonssett.