To zadziała:
wybierz wynagrodzenie z ( wybierz wynagrodzenie , rownum jako rn z (wybierz wynagrodzenie z e_salary porządek według opisu wynagrodzenia)) gdzie rn =2;
Dlaczego to nie działa:
Podczas przypisywania ROWNUM do wiersza, Oracle zaczyna się od 1 i zwiększa wartość tylko wtedy, gdy wiersz jest zaznaczony; to znaczy, gdy wszystkie warunki w klauzuli WHERE są spełnione. Ponieważ nasz warunek wymaga, aby ROWNUM było większe niż 2, żadne wiersze nie są wybierane, a ROWNUM nigdy nie jest zwiększane powyżej 1.
Mam nadzieję, że teraz wszystko jasne.