SQL Server ROW_NUMBER Functie

Samenvatting: in deze tutorial leert u hoe u de SQL Server ROW_NUMBER() functie om een sequentieel geheel getal toe te wijzen aan elke rij van een resultatenset.

Inleiding tot SQL Server ROW_NUMBER () functie

De ROW_NUMBER() is een vensterfunctie die een sequentieel geheel getal toewijst aan elke rij binnen de partitie van een resultaatset. Het rijnummer begint met 1 voor de eerste rij in elke partitie.

Het volgende toont de syntaxis van de ROW_NUMBER() functie:

Laten we onderzoek de syntaxis van de ROW_NUMBER() -functie in detail.

PARTITION BY

De PARTITION BY clausule verdeelt de resultatenset in partities (een andere term voor groepen rijen). De functie ROW_NUMBER() wordt op elke partitie afzonderlijk toegepast en het rijnummer voor elke partitie opnieuw geïnitialiseerd.

De PARTITION BY -clausule is optioneel. Als je het overslaat, behandelt de functie ROW_NUMBER() de hele resultatenset als een enkele partitie.

ORDER BY

De ORDER BY clausule definieert de logische volgorde van de rijen binnen elke partitie van de resultatenset. De ORDER BY -clausule is verplicht omdat de ROW_NUMBER() -functie ordergevoelig is.

SQL Server ROW_NUMBER () voorbeelden

We gebruiken de sales.customers -tabel uit de voorbeelddatabase om de ROW_NUMBER() -functie te demonstreren .

SQL Server gebruiken ROW_NUMBER () functie over een resultatensetvoorbeeld

De volgende instructie gebruikt de ROW_NUMBER() om aan elke klantrij een volgnummer toe te wijzen:

Hier is de gedeeltelijke output:

In dit voorbeeld heeft de PARTITION BY clausule overgeslagen, daarom behandelde de ROW_NUMBER() de hele resultatenset als een enkele partitie.

SQL gebruiken Server ROW_NUMBER () over partities voorbeeld

Het volgende voorbeeld gebruikt de ROW_NUMBER() functie om een sequentieel geheel getal aan elke klant toe te wijzen. Het reset het nummer wanneer de stad verandert:

De volgende afbeelding toont de gedeeltelijke uitvoer:

In dit voorbeeld hebben we de PARTITION BY -clausule gebruikt om de klanten in partities per stad te verdelen. Het rijnummer is opnieuw geïnitialiseerd toen de stad veranderde.

SQL Server ROW_NUMBER () gebruiken voor paginering

De ROW_NUMBER() -functie is handig voor paginering in toepassingen. U kunt bijvoorbeeld een lijst met klanten per pagina weergeven, waarbij elke pagina 10 rijen heeft.

In het volgende voorbeeld wordt de ROW_NUMBER() gebruikt om klanten uit rij 11 te retourneren tot 20, wat de tweede pagina is:

De output is als volgt:

In dit voorbeeld:

  • Ten eerste gebruikte de CTE de ROW_NUMBER() -functie om elke rij in het resultaat stelt een opeenvolgend geheel getal in.
  • Ten tweede retourneert de buitenste query de rijen van de tweede pagina, die het rijnummer tussen 11 en 20 hebben.

In deze tutorial heb je geleerd hoe je de SQL Server ROW_NUMBER() -functie gebruikt om een sequentieel geheel getal toe te wijzen aan elke rij binnen een partitie van een query.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *