SQL bly

SQL bly

SQL Lead -funksjonen lar deg få tilgang til neste rad fra den nåværende raden ved en spesifikk forskyvning. Kort sagt, blyfunksjonen lar deg få tilgang til neste rad fra den nåværende. Ved å spesifisere forskyvningsverdien, kan du få tilgang til neste 1, 2, 3 osv., rader fra den nåværende.

Det er motsatt av lag () -funksjonen, som lar deg få tilgang til tidligere rader.

SQL Lead ()

Funksjonssyntaksen er som vist:

Bly (Value_expression, offset [, standard])
Over (
[Partisjon av Partition_Expression]
Bestill etter sort_expression [ASC | Desc]
);

Følgende er de støttede argumentene:

  1. verdi_uttrykk - Angir returverdien på foregående rad. Uttrykket må evaluere til en enkelt verdi.
  2. offset - Angir hvor mange rader fremover fra den nåværende raden for å få tilgang til.
  3. misligholde - Angir standardverdien hvis forskyvningen er utenfor partisjonens omfang. Som standard er verdien satt til null.
  4. Partisjon av - Angir hvordan du kan partisjonere dataene.
  5. Rekkefølge etter - Angir ordreformatet for radene i hver partisjon.

Eksempel 1

Anta at vi har en tabell som inneholder ansattes informasjon som vist:

For å få tilgang til neste ansattes navn, kan vi kjøre en spørring som vist:

Velg ID, full_name, bly (full_name) over (
Partisjon etter kategori
Bestill etter ID ASC
) Som Next_Employee
Fra ansatte;

Koden over vil dele opp dataene basert på kategorien. Det vil da hente neste navn i partisjonen ved å bruke blyfunksjonen.

Den resulterende utgangen er som vist:

Eksempel 2

Hvis det ikke er noen neste rad i en spesifikk kolonne (utenfor bundet), vil funksjonen sette verdien til null, som vist ovenfor.

For å angi en standardverdi for all tilgang utenfra, kan vi gjøre følgende:

Velg ID, full_name, bly (full_name, 1, 'n/a') over (
Partisjon etter kategori
Bestill etter ID ASC
) Som Next_Employee
Fra ansatte;

Vi setter standardverdien til 'N/A'. Dette skal erstatte enhver ut-av-bundet verdi som vist i utgangen:

MERK: Å sette forskyvningen til 1 ligner på ikke å spesifisere noen verdi.

Eksempel 3

Anta at du vil få tilgang til de to neste radene fra den nåværende raden? Vi kan gjøre det ved å sette forskyvningsverdien til 2.

Et eksempel på spørringen er illustrert nedenfor:

Velg ID, full_name, bly (full_name, 2, 'n/a') over (
Partisjon etter kategori
Bestill etter ID ASC
) Som Next_Employee
Fra ansatte;

Denne spørringen vil returnere de to neste radene i hver partisjon som vist nedenfor: