LIMIT e OFFSET

Retorne apenas parte das linhas: as n primeiras, ou uma página que começa depois de m linhas.

Sintaxe

SELECT … ORDER BY … LIMIT n [OFFSET m];
SELECT … ORDER BY … OFFSET m ROWS FETCH FIRST n ROWS ONLY;
  • A forma FETCH é SQL padrão. O SQL Server usa TOP ou OFFSET … FETCH; o Oracle usa FETCH FIRST.

Exemplo

SELECT name, unit_price FROM products ORDER BY unit_price DESC, name LIMIT 3 OFFSET 3;

A segunda página de três produtos, do mais caro para o mais barato.

Tabelas usadas: products. Experimente em uma lição abaixo.

Erros comuns

  • Sem ORDER BY, não se define a ordem das linhas que você recebe.
  • Um OFFSET grande ainda lê e pula todas as linhas anteriores, então páginas profundas ficam lentas.

Pratique