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

Zapytanie SQL Z Row_Number, kolejność według i gdzie klauzula

rownum to pseudokolumna, która zlicza wiersze w zestawie wyników po klauzula where została zastosowana.

Czy to właśnie chcesz uzyskać?

SELECT *
FROM ( 
    SELECT id, column1, column2
    FROM atable ORDER BY 2 DESC
) 
WHERE ROWNUM < 100;

Ponieważ jest to pseudokolumna, która jest ściśle licznikiem wierszy wynikającym z klauzuli WHERE, nie pozwoli Ci na stronicowanie (tj. między 200 a 300).

Prawdopodobnie tego szukasz:

SELECT *
FROM
 (SELECT a.*, rownum rnum FROM
     (SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC Cienka Oracle 11g

  2. Sekwencja bez luk, w której zaangażowanych jest wiele transakcji z wieloma tabelami

  3. Jak działa podzapytanie w instrukcji select w oracle?

  4. Jak znaleźć uprawnienia i role nadawane użytkownikowi w Oracle?

  5. Wskaż ADO.Net DataSet do różnych baz danych w czasie wykonywania?