Tema SQL
LIMIT, OFFSET y FETCH
Paginar o acotar filas devueltas; la sintaxis exacta depende del motor.
Descripción
Tras ORDER BY, limita cuántas filas ves o saltas las primeras para paginación. MySQL/PostgreSQL usan LIMIT/OFFSET; SQL Server OFFSET…FETCH; Oracle FETCH FIRST… (manual §8.5).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
-- Patrones habituales
SELECT ... FROM ...
ORDER BY ...
LIMIT n OFFSET m;
-- SQL Server (ejemplo)
ORDER BY id
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- LIMIT
- Máximo de filas a devolver.
- OFFSET
- Salta filas desde el inicio del resultado ordenado.
- Motor
- TOP (SQL Server), ROWNUM (Oracle clásico) son alternativas históricas.
Ejemplos
Ejemplo 1
SELECT id, titulo
FROM articulos
ORDER BY creado_en DESC
LIMIT 10 OFFSET 20;
Ejemplo 2
SELECT id FROM logs ORDER BY id DESC FETCH FIRST 5 ROWS ONLY;
Temas relacionados
Enlaces internos para seguir leyendo: SELECT, WHERE, JOIN, GROUP BY y el resto de la referencia SQL.
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.