Numerowanie wierszy w wyniku zapytania SQL – Oracle
Tworząc różnego rodzaju raporty czy zestawienia w języku Oracle SQL czasami istnieje konieczność ponumerowania wierszy w wyniku zapytania SQL. Możemy tego dokonać na kilka sposobów. Poniżej przedstawię dwa z nich. Dla przykładów posłużę się tablicą o nazwie: students. W wynikach będziemy numerować wiersze oraz pobierać imię i nazwisko studenta z bazy danych.
1. Pierwsza metoda to zastosowanie: row_number()
select row_number() OVER (ORDER BY 1), s.name, s.surname from students s
W wyniku otrzymamy:
1 John True
2 David False
3 Joseph New
Zaletą row_number()
jest każdorazowa numeracja wierszy od “1” po ponownym wykonaniu zapytania
2. Druga metoda polega na zastosowaniu sekwencji. Konstrukcje oraz użycie sekwencji dokładnie opisałem na stronie: Sekwencje w Oracle SQL – create, drop sequence (jak utworzyć i usunąć)
select licznik.nextval, s.name, s.surname from students s
Wykonując powyższe zapytanie otrzymany wynik:
1 John True
2 David False
3 Joseph New
Jeżeli ponownie wykonamy to samo zapytanie tym razem dostaniemy:
4 John True
5 David False
6 Joseph New
Stosując sekwencje należy pamiętać, że każde jej wywołanie zwiększa licznik.