Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wybór drugiego wiersza tabeli za pomocą rownum

Aby wyjaśnić to zachowanie, musimy zrozumieć, w jaki sposób Oracle przetwarza ROWNUM. Podczas przypisywania ROWNUM do wiersza Oracle zaczyna się od 1 i zwiększa wartość tylko wtedy, gdy wiersz jest zaznaczony; oznacza to, że spełnione są wszystkie warunki w klauzuli WHERE. Ponieważ nasz warunek wymaga, aby ROWNUM było większe niż 2, żadne wiersze nie są wybierane, a ROWNUM nigdy nie jest zwiększane o 1.

Najważniejsze jest to, że warunki takie jak poniższe będą działały zgodnie z oczekiwaniami.

.. GDZIE rownum =1;

.. GDZIE rownum <=10;

Zapytania z tymi warunkami zawsze zwrócą zero wierszy.

.. GDZIE rownum =2;

.. GDZIE rownum> 10;

Cytat z Understanding Oracle rownum

Aby działać, należy zmodyfikować zapytanie w ten sposób:

select empno
from
    (
    select empno, rownum as rn 
    from (
          select empno
          from emp
          order by sal desc
          )
    )
where rn=2;

EDYTUJ :poprawiłem zapytanie, aby uzyskać numer wiersza po zamówienie według opisu sal



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj nazwę miesiąca od daty w Oracle

  2. Oracle SQL — sumowanie i grupowanie danych według tygodnia

  3. Jak napisać sparametryzowaną kwerendę wstawiania Oracle?

  4. ORA-12505, TNS:listener nie zna obecnie SID podanego w connect des

  5. JDBC ResultSet getDate traci precyzję