Podsumowanie: w tym samouczku dowiesz się, jak używać funkcji ROW_NUMBER() do przypisywania kolejnych numerów do każdego wiersza w zestawie wyników zapytania. 
Opis funkcji SQL ROW_NUMBER ()
 ROW_NUMBER() to funkcja okna, która przypisuje sekwencyjną liczbę całkowitą do każdy wiersz w zestawie wyników zapytania. 
 Poniższy rysunek ilustruje składnię funkcji ROW_NUMBER(): 
W tej składni
-  Najpierw klauzula 
PARTITION BYdzieli zestaw wyników zwróconych zFROMna partycje. KlauzulaPARTITION BYjest opcjonalna. Jeśli go pominiesz, cały zestaw wyników jest traktowany jako jedna partycja. -  Następnie klauzula 
ORDER BYsortuje wiersze w każdej partycji. PonieważROW_NUMBER()jest funkcją zależną od kolejności, wymagana jest klauzulaORDER BY. - Na koniec każdy wiersz w każdym partycji przypisywana jest kolejna liczba całkowita nazywana numerem wiersza. Numer wiersza jest resetowany po przekroczeniu granicy partycji.
 
Przykłady SQL ROW_NUMBER ()
 Użyjemy employees i departments tabele z przykładowej bazy danych do demonstracji: 
A) Przykład prostego SQL ROW_NUMBER ()
 Poniższa instrukcja zawiera imię, nazwisko i wynagrodzenie wszystkich pracowników. Ponadto używa funkcji ROW_NUMBER() w celu dodania kolejnych liczb całkowitych do każdego wiersza. 
Poniższy obrazek pokazuje częściowy zestaw wyników:
B ) Używanie SQL ROW_NUMBER () do paginacji
 Funkcja ROW_NUMBER() może być używana do stronicowania. Na przykład, jeśli chcesz wyświetlić wszystkich pracowników w tabeli w aplikacji według stron, z których każda ma dziesięć rekordów. 
-  Najpierw użyj 
ROW_NUMBER(), aby przypisać każdemu wierszowi sekwencyjną liczbę całkowitą. - Po drugie, filtruj wiersze według żądanej strony. Na przykład pierwsza strona zawiera wiersze zaczynające się od 1 do 9, a druga strona zawiera wiersze zaczynające się od 11 do 20 itd.
 
Poniższa instrukcja zwraca rekordy na drugiej stronie każda strona ma dziesięć rekordów.
Poniżej przedstawiono wyniki:
Jeśli chcesz użyć wspólnego wyrażenia tabelowego (CTE) zamiast podzapytania, oto zapytanie:
C) Używanie SQL ROW_NUMBER () do znalezienia n-tej najwyższej wartości na grupę
Poniższy przykład pokazuje, jak znaleźć pracowników, których wynagrodzenie jest najwyższe w swoich działach:
W podzapytaniu:
-  Po pierwsze, klauzula 
PARTITION BYrozdziela pracowników według działów. -  Po drugie, 
ORDER BYklauzula sortuje pracownika w każdym dziale według wynagrodzenia w porządku malejącym. -  Po trzecie, 
ROW_NUMBER()przypisuje każdemu wierszowi kolejną liczbę całkowitą . Resetuje numer, gdy zmienia się dział. 
Poniżej przedstawiono zestaw wyników podzapytania:
 W zapytaniu zewnętrznym wybraliśmy tylko te wiersze pracowników, które mają row_num z wartość 1. 
Oto wynik całego zapytania:
 Jeśli zmienisz predykat w klauzuli WHERE z 1 na 2, 3 i tak dalej, otrzymasz pracowników, którzy ma drugą najwyższą pensję, trzecią najwyższą pensję itd. 
 W tym samouczku nauczyłeś się, jak używać funkcji SQL ROW_NUMBER() do przypisywania liczba całkowita do każdego wiersza w zestawie wyników zapytania. 
- Czy ten samouczek był pomocny?
 - TakNie