Alternatywa dla rownum w Oracle

0

Witam,

muszę omówić narzędzia w Oracle, które pomogą mi np. wybrać 10 rekordów o maksymalnej wartości.
Jedno narzędzie już znalazlem: nazywa się rownum i zostało zgrabnie opisane chociażby tutaj:
http://4programmers.net/Forum/345896?h=rownum#id345896

Jednak wiem, ze istnieje jeszcze jedno narzędzie do wybrania 10 maksymalnych rekordów w tabeli. Nazywa się chyba rownumber, ale głowy uciąć nie dam. Wie ktoś może jak działa to narzędzie, ewentualnie mógłby zobrazować na prostym przykładzie.

pozdrawiam Łukasz

0

Widzę, że sam muszę sobie odpowiedzieć :-)

Otóż kolejnym narzedziem do wyznaczania np. 10 pierwszych rekordow jest row_number(),
wiecej znajdziecie tutaj:
http://blog.arctus.co.uk/articles/2007/05/14/oracle-limiting-the-number-of-records-like-top-n-limit
http://groups.google.pl/group/pl.comp.bazy-danych/browse_thread/thread/6827daaa935555de/0eb33a622b0deeb4?hl=pl&lnk=st&q=row_number()+oracle#0eb33a622b0deeb4
http://forum.hotscripts.pl/pl-comp-bazy-danych/33272-oracle-partition-row_number-i-suma.html

prosty przyklad na tabeli pracownicy, ktora zawiera np. kolumne pracownicy_id. wyswietl pierwsze 10 rekordow:

Select EMPLOYEE_ID, EMP from 
   (
       select EMPLOYEE_ID,  row_number() over (order by EMPLOYEE_ID asc) as EMP from EMPLOYEES
   )
where EMP <= 10;

1 użytkowników online, w tym zalogowanych: 0, gości: 1