Rezumat: în acest tutorial, veți afla cum să utilizați SQL Server ROW_NUMBER()
funcție pentru a atribui un număr întreg secvențial fiecărui rând al unui set de rezultate.
Introducere în funcția SQL Server ROW_NUMBER () funcție
ROW_NUMBER()
este o funcție de fereastră care atribuie un număr întreg secvențial fiecărui rând din partiția unui set de rezultate. Numărul rândului începe cu 1 pentru primul rând din fiecare partiție.
Următorul arată sintaxa funcției ROW_NUMBER()
:
Să examinați în detaliu sintaxa funcției ROW_NUMBER()
.
PARTITION BY
PARTITION BY
clauza împarte setul de rezultate în partiții (un alt termen pentru grupuri de rânduri). Funcția ROW_NUMBER()
se aplică fiecărei partiții separat și reinițializează numărul rândului pentru fiecare partiție.
Clauza PARTITION BY
este opțional. Dacă o omiteți, funcția ROW_NUMBER()
va trata întregul set de rezultate ca o singură partiție.
ORDER BY
ORDER BY
clauza definește ordinea logică a rândurilor din fiecare partiție a setului de rezultate. Clauza ORDER BY
este obligatorie deoarece funcția ROW_NUMBER()
este sensibilă la ordine.
SQL Server ROW_NUMBER () exemple
Vom folosi tabelul sales.customers
din baza de date mostră pentru a demonstra funcția ROW_NUMBER()
.
Utilizarea SQL Server ROW_NUMBER () funcția peste un exemplu de set de rezultate
Următoarea declarație folosește ROW_NUMBER()
pentru a atribui fiecărui rând client un număr secvențial:
Iată parțial ieșire:
În acest exemplu, vom a omis clauza PARTITION BY
, prin urmare, ROW_NUMBER()
a tratat întregul set de rezultate ca o singură partiție.
Utilizarea SQL Exemplu de server ROW_NUMBER () peste partiții
Următorul exemplu folosește ROW_NUMBER()
funcție pentru a atribui un număr întreg secvențial fiecărui client. Resetează numărul la schimbarea orașului:
Următoarea imagine arată rezultatul parțial:
În acest exemplu, am folosit clauza PARTITION BY
pentru a împărți clienții în partiții după oraș. Numărul rândului a fost reinitializat la schimbarea orașului.
Utilizarea SQL Server ROW_NUMBER () pentru paginare
Funcția ROW_NUMBER()
este utilă pentru paginare în aplicații. De exemplu, puteți afișa o listă de clienți după pagină, în care fiecare pagină are 10 rânduri.
Următorul exemplu folosește ROW_NUMBER()
pentru a returna clienții din rândul 11 la 20, care este a doua pagină:
Rezultatul este după cum urmează:
În acest exemplu:
- Mai întâi, CTE a folosit funcția
ROW_NUMBER()
pentru a atribui fiecare rând din rezultat setează un număr întreg secvențial. - În al doilea rând, interogarea externă a returnat rândurile celei de-a doua pagini, care au numărul rândului între 11 și 20.
În acest tutorial, ați învățat cum să utilizați funcția SQL Server ROW_NUMBER()
pentru a atribui un număr întreg secvențial fiecărui rând dintr-o partiție a unei interogări.