Funcția SQL Server ROW_NUMBER

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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *