SQL Server ROW_NUMBER-funktion (Svenska)

Sammanfattning: i denna handledning lär du dig hur du använder SQL Server ROW_NUMBER() funktion för att tilldela ett sekventiellt heltal till varje rad i en resultatuppsättning.

Introduktion till SQL Server ROW_NUMBER () -funktion

ROW_NUMBER() är en fönsterfunktion som tilldelar ett sekventiellt heltal till varje rad inom partitionen av en resultatuppsättning. Radnumret börjar med 1 för den första raden i varje partition.

Följande visar syntax för ROW_NUMBER() -funktionen:

Låt oss undersök syntaxen för ROW_NUMBER() -funktionen i detalj.

DELNING AV

PARTITION BY klausul delar resultatuppsättningen i partitioner (en annan term för grupper av rader). Funktionen ROW_NUMBER() tillämpas separat på varje partition och återinitierar radnumret för varje partition.

PARTITION BY -satsen är valfritt. Om du hoppar över den kommer funktionen ROW_NUMBER() att behandla hela resultatuppsättningen som en enda partition.

BESTÄLLNING AV

ORDER BY klausul definierar den logiska ordningen på raderna inom varje partition av resultatuppsättningen. ORDER BY -satsen är obligatorisk eftersom ROW_NUMBER() -funktionen är ordningskänslig.

SQL Server ROW_NUMBER () exempel

Vi använder tabellen sales.customers från exempeldatabasen för att visa funktionen ROW_NUMBER() .

Använda SQL Server ROW_NUMBER () funktion över ett resultatuppsättningsexempel

Följande uttalande använder ROW_NUMBER() för att tilldela varje kundrad ett löpnummer:

Här är partiell output:

I det här exemplet, hoppade över PARTITION BY -satsen, därför behandlade ROW_NUMBER() hela resultatuppsättningen som en enda partition.

Använda SQL Server ROW_NUMBER () över partitionsexempel

Följande exempel använder ROW_NUMBER() funktion för att tilldela ett sekventiellt heltal till varje kund. Det återställer numret när staden ändras:

Följande bild visar den partiella utdata:

I det här exemplet använde vi PARTITION BY -satsen för att dela upp kunderna i partitioner efter stad. Radnumret initierades om när staden ändrades.

Användning av SQL Server ROW_NUMBER () för paginering

Funktionen ROW_NUMBER() är användbar för paginering i applikationer. Du kan till exempel visa en lista med kunder efter sida där varje sida har 10 rader.

Följande exempel använder ROW_NUMBER() för att returnera kunder från rad 11 till 20, vilket är den andra sidan:

Resultatet är som följer:

I detta exempel:

  • Först använde CTE funktionen ROW_NUMBER() för att tilldela varje rad i resultatet anger ett sekventiellt heltal.
  • För det andra returnerade den yttre frågan raderna på den andra sidan, som har radnumret mellan 11 och 20.

I den här självstudien har du lärt dig hur man använder SQL Server ROW_NUMBER() -funktionen för att tilldela ett sekventiellt heltal till varje rad inom en partition av en fråga.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *