Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Consulta SQL com Row_Number, ordenar por e cláusula where


rownum é uma pseudo coluna que conta linhas no conjunto de resultados depois a cláusula where foi aplicada.

É isso que você está tentando conseguir?
SELECT *
FROM ( 
    SELECT id, column1, column2
    FROM atable ORDER BY 2 DESC
) 
WHERE ROWNUM < 100;

Por ser uma pseudo coluna que é estritamente um contador de linhas resultante da cláusula where, ela não permitirá que você faça paginação (ou seja, entre 200 e 300).

Provavelmente é isso que você está procurando:
SELECT *
FROM
 (SELECT a.*, rownum rnum FROM
     (SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;