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

SQL заявка С номер_ред, клауза за ред по и къде

rownum е псевдо колона, която брои редовете в резултатния набор след е приложена клаузата where.

Това ли се опитвате да получите?

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

Тъй като това е псевдо колона, която е строго брояч на редове, произтичащи от клаузата where, тя няма да ви позволи да правите пагинация (т.е. между 200 и 300).

Това вероятно е това, което търсите:

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. Копиране на данни от файл в CLOB в Oracle

  2. Oracle Connection Pooling в .Net

  3. Защо имам неуспешна контролна сума при всяка лоша SQL заявка в Oracle, когато Native Encryption (ASO) е активирано?

  4. Регистриране на Oracle SQL заявка

  5. как да извличате данни от база данни на oracle с помощта на PHP