LIMIT y OFFSET

Devuelve solo algunas filas: las primeras n, o una página que empieza después de m filas.

Sintaxis

SELECT … ORDER BY … LIMIT n [OFFSET m];
SELECT … ORDER BY … OFFSET m ROWS FETCH FIRST n ROWS ONLY;
  • La forma FETCH es SQL estándar. SQL Server usa TOP u OFFSET … FETCH; Oracle usa FETCH FIRST.

Ejemplo

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

La segunda página de tres productos, del más caro al más barato.

Tablas usadas: products. Pruébalo en una lección de abajo.

Errores comunes

  • Sin ORDER BY, no se define qué filas obtienes.
  • Un OFFSET grande sigue leyendo y saltando todas las filas anteriores, así que las páginas profundas se vuelven lentas.

Practícalo