segunda-feira, 24 de novembro de 2025

ORACLE - Pular os 50 primeiros registros

Para pular os 50 primeiros registros em Oracle PL/SQL, você pode usar a cláusula `OFFSET` junto com `FETCH` (disponível a partir do Oracle 12c).  


Aqui está um exemplo prático:


sql

SELECT *

FROM minha_tabela

ORDER BY id

OFFSET 50 ROWS FETCH NEXT 100 ROWS ONLY;

```


Explicação:

- `ORDER BY id` → é **obrigatório** para garantir a ordem dos registros.

- `OFFSET 50 ROWS` → ignora os primeiros 50 registros.

- `FETCH NEXT 100 ROWS ONLY` → retorna os próximos 100 registros (pode ajustar conforme necessário).


### Se estiver em versão anterior ao Oracle 12c (sem suporte a `OFFSET`):

Você pode usar uma subquery com `ROWNUM`:


sql

SELECT *

FROM (

    SELECT t.*, ROWNUM r

    FROM (

        SELECT * FROM minha_tabela ORDER BY id

    ) t

    WHERE ROWNUM <= 150

)

WHERE r > 50;

```


- Aqui, a subquery interna ordena os dados.

- O filtro `ROWNUM <= 150` garante que só pegue até o registro 150.

- O filtro externo `r > 50` remove os primeiros 50.


Nenhum comentário:

Postar um comentário