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

Como adicionar deslocamento em uma consulta de seleção no Oracle 11g?


Você pode fazer isso facilmente em 12c especificando OFFSET .

Em 12c ,
SELECT val
FROM   table
ORDER BY val
OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;

Para fazer o mesmo em 11g e antes, você precisa usar ROWNUM duas vezes, inner query e outer query respectivamente.

A mesma consulta em 11g ,
SELECT val
FROM   (SELECT val, rownum AS rnum
        FROM   (SELECT val
                FROM   table
                ORDER BY val)
        WHERE rownum <= 8)
WHERE  rnum > 4;

Aqui OFFSET é 4.