Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle/SQL:Защо заявката SELECT * FROM записи WHERE rownum>=5 И rownum <=10 - връща нула редове

В Oracle стойностите на Rownum се присвояват след етапа на филтриране на заявката – те не са редове от таблицата, а редове от набора от резултати от заявката.

Така че на първия ред, който се връща, винаги ще бъде даден rownum 1, вторият ред, който се връща, rownum 2 и т.н.

Стойността на rownum се увеличава само след като е присвоена, така че всяка заявка като

select * from t where ROWNUM > 1

щеникога върнете всички резултати. Тази заявка казва „Не искам да виждам първия ред, който ми се връща, а само тези след това“, което е нещо като парадокс, така че нищо не се връща.

Вижте Попитайте Том:На ROWNUM и ограничаване на резултатите за повече подробности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да дам псевдоним на таблица в Oracle?

  2. Как да извлечете данни от две колони във формат A,B в Oracle

  3. Разширете EM Grid Control до нови възли

  4. Защо получавам PLS-00302:компонентът трябва да бъде деклариран, когато съществува?

  5. 50 нюанса на изпит за сертифициране на база данни на Oracle