SQL Server ROW_NUMBER-funksjon

Sammendrag: i denne opplæringen lærer du hvordan du bruker SQL Server ROW_NUMBER() funksjon for å tilordne et sekvensielt heltall til hver rad i et resultatsett.

Introduksjon til SQL Server ROW_NUMBER () -funksjon

ROW_NUMBER() er en vindusfunksjon som tildeler et sekvensielt heltall til hver rad i partisjonen til et resultatsett. Radnummeret starter med 1 for den første raden i hver partisjon.

Følgende viser syntaksen til ROW_NUMBER() -funksjonen:

La oss undersøk syntaksen til ROW_NUMBER() -funksjonen i detalj.

PARTISJON AV

PARTITION BY klausul deler resultatsettet i partisjoner (et annet begrep for grupper av rader). ROW_NUMBER() -funksjonen brukes på hver partisjon separat og initialiseres radnummeret for hver partisjon på nytt.

PARTITION BY -klausulen er valgfritt. Hvis du hopper over den, vil ROW_NUMBER() -funksjonen behandle hele resultatsettet som en enkelt partisjon.

BESTILL AV

ORDER BY ledd definerer den logiske rekkefølgen på radene i hver partisjon av resultatsettet. ORDER BY -klausulen er obligatorisk fordi ROW_NUMBER() -funksjonen er rekkefølsom.

SQL Server ROW_NUMBER () eksempler

Vi bruker sales.customers tabellen fra eksempeldatabasen for å demonstrere ROW_NUMBER() -funksjonen .

Bruk av SQL Server ROW_NUMBER () funksjon over et resultatsetteksempel

Følgende uttalelse bruker ROW_NUMBER() for å tildele hver kunderekke et løpende nummer:

Her er den delvise utgang:

I dette eksemplet viser vi hoppet over PARTITION BY klausulen, derfor behandlet ROW_NUMBER() hele resultatsettet som en enkelt partisjon.

Ved hjelp av SQL Server ROW_NUMBER () over partisjonseksempel

Følgende eksempel bruker ROW_NUMBER() funksjon for å tildele et sekvensielt heltall til hver kunde. Den tilbakestiller tallet når byen endres:

Følgende bilde viser delvis utdata:

I dette eksemplet brukte vi PARTITION BY -klausulen for å dele kundene i partisjoner etter by. Radnummeret ble initialisert på nytt da byen endret seg.

Bruk av SQL Server ROW_NUMBER () for paginering

Funksjonen ROW_NUMBER() er nyttig for paginering i applikasjoner. For eksempel kan du vise en liste over kunder etter side, der hver side har 10 rader.

Følgende eksempel bruker ROW_NUMBER() for å returnere kunder fra rad 11 til 20, som er den andre siden:

Resultatet er som følger:

I dette eksemplet:

  • Først brukte CTE funksjonen ROW_NUMBER() for å tildele hver rad i resultatet angir et sekvensielt heltall.
  • For det andre returnerte det ytre spørringen radene på den andre siden, som har radnummeret mellom 11 og 20.

I denne opplæringen har du lært hvordan du bruker SQL Server ROW_NUMBER() -funksjonen for å tilordne et sekvensielt heltall til hver rad i en partisjon av et spørsmål.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *