SQL Server ROW_NUMBER-funktion (Dansk)

Oversigt: i denne vejledning lærer du, hvordan du bruger SQL Server ROW_NUMBER() funktion til at tildele et sekventielt heltal til hver række i et resultatsæt.

Introduktion til SQL Server ROW_NUMBER () -funktion

ROW_NUMBER() er en vinduesfunktion, der tildeler et sekventielt heltal til hver række inden for partitionen af et resultatsæt. Rækkens nummer starter med 1 for den første række i hver partition.

Følgende viser syntaksen for ROW_NUMBER() -funktionen:

Lad os undersøge syntaksen for ROW_NUMBER() -funktionen i detaljer.

PARTITION BY

PARTITION BY klausul opdeler resultatsættet i partitioner (et andet udtryk for grupper af rækker). Funktionen ROW_NUMBER() påføres hver partition separat og geninitialiseres række nummeret for hver partition.

PARTITION BY -klausulen er valgfri. Hvis du springer den over, behandler ROW_NUMBER() -funktionen hele resultatsættet som en enkelt partition.

ORDER BY

ORDER BY klausul definerer den logiske rækkefølge for rækkerne inden for hver partition af resultatsættet. ORDER BY -klausulen er obligatorisk, fordi ROW_NUMBER() -funktionen er rækkefølsom.

SQL Eksempler på server ROW_NUMBER ()

Vi bruger sales.customers -tabellen fra eksempeldatabasen til at demonstrere funktionen ROW_NUMBER() .

Brug af SQL Server ROW_NUMBER () funktion over et resultatsæteksempel

Følgende udsagn bruger ROW_NUMBER() til at tildele hver kunderække et løbenummer:

Her er den delvise output:

I dette eksempel viser vi sprang PARTITION BY -klausulen, derfor behandlede ROW_NUMBER() hele resultatsættet som en enkelt partition.

Brug af SQL Server ROW_NUMBER () over partitionseksempel

Følgende eksempel bruger ROW_NUMBER() funktion til at tildele et sekventielt heltal til hver kunde. Det nulstiller antallet, når byen ændres:

Følgende billede viser deloutput:

I dette eksempel brugte vi PARTITION BY -klausulen til at opdele kunderne i partitioner efter by. Række nummeret blev geninitialiseret, da byen ændredes.

Brug af SQL Server ROW_NUMBER () til pagination

Funktionen ROW_NUMBER() er nyttig til pagination i applikationer. For eksempel kan du vise en liste over kunder efter side, hvor hver side har 10 rækker.

Følgende eksempel bruger ROW_NUMBER() til at returnere kunder fra række 11 til 20, hvilket er den anden side:

Outputtet er som følger:

I dette eksempel:

  • Først brugte CTE funktionen ROW_NUMBER() til at tildele hver række i resultatet indstiller et sekventielt heltal.
  • For det andet returnerede den ydre forespørgsel rækkerne på den anden side, som har række nummer mellem 11 og 20.

I denne vejledning har du lært, hvordan du bruger SQL Server ROW_NUMBER() -funktionen til at tildele et sekventielt heltal til hver række inden for en partition af en forespørgsel.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *