LIMIT y SELECT TOP en SQL
A veces no necesitas todas las filas de una consulta, sino solo las primeras N
. En
SQL Server
se usa
SELECT TOP
; en
MySQL
,
PostgreSQL
y
SQLite
(como nuestro editor), la cláusula equivalente es
LIMIT
.
LIMIT y SELECT TOP en SQL responde a una necesidad muy concreta: controlar cuántas filas devuelve una consulta. Es imprescindible al explorar datos y al paginar resultados en aplicaciones.
En SQLite y MySQL se usa LIMIT; en SQL Server TOP; en Oracle ROWNUM o funciones de ventana. El concepto es el mismo: acotar el resultado.
LIMIT y SELECT TOP en SQL responde a una necesidad muy concreta: controlar cuántas filas devuelve una consulta. Es imprescindible al explorar datos y al paginar resultados en aplicaciones.
En SQLite y MySQL se usa LIMIT; en SQL Server TOP; en Oracle ROWNUM o funciones de ventana. El concepto es el mismo: acotar el resultado.
Es útil en tablas grandes para obtener una muestra, un ranking o paginar resultados.
Sintaxis SELECT TOP (SQL Server)
La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.
Plantilla TOP
SELECT TOP n columna(s)
FROM tabla
WHERE condicion;
Sintaxis LIMIT en SQL (SQLite, MySQL, PostgreSQL)
La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.
Plantilla LIMIT
SELECT columna(s)
FROM tabla
WHERE condicion
ORDER BY columna
LIMIT n;
En el editor interactivo escribes sintaxis SQL Server
(SELECT TOP,
OFFSET … FETCH); el motor la traduce a SQLite al ejecutar.
Ejemplo LIMIT en SQL
Los tres clientes con más
N_Ventas
:
TOP 3 con ORDER BY DESC
SELECT TOP 3 Nombre_Cliente, N_Ventas
FROM Clientes
ORDER BY N_Ventas DESC;
Resultado: María López (200), John Smith (150), Ana García (120).
| Nombre_Cliente | N_Ventas |
|---|---|
| María López | 200 |
| John Smith | 150 |
| Ana García | 120 |
Tabla demo Clientes para LIMIT
Base de datos de demostración: Clientes
Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.
| ID_Cliente | Nombre_Cliente | Ciudad | Pais | N_Ventas |
|---|---|---|---|---|
| 1 | Ana García | Madrid | España | 120 |
| 2 | Luis Pérez | Barcelona | España | 85 |
| 3 | María López | Valencia | España | 200 |
| 4 | Carlos Ruiz | Madrid | España | 45 |
| 5 | Elena Torres | Sevilla | España | 67 |
| 6 | John Smith | London | UK | 150 |
| 7 | Marie Dubois | Paris | Francia | 92 |
| 8 | Hans Müller | Berlin | Alemania | 78 |
| 9 | Luca Rossi | Roma | Italia | 110 |
| 10 | Sofia Anders | Stockholm | Suecia | 55 |
LIMIT con WHERE en SQL
Equivalente conceptual a
SELECT TOP 5
filtrando por país en SQL Server:
Cinco clientes españoles
SELECT TOP 5 Nombre_Cliente, Ciudad
FROM Clientes
WHERE Pais = 'España'
ORDER BY Nombre_Cliente;
LIMIT con ORDER BY DESC
Los 3 productos más caros
SELECT TOP 3 Nombre_Producto, Precio
FROM Productos
ORDER BY Precio DESC;
LIMIT y OFFSET en SQL
OFFSET
salta las primeras filas; útil para paginar:
Tres clientes a partir del tercero
SELECT Nombre_Cliente
FROM Clientes
ORDER BY Nombre_Cliente
OFFSET 2 ROWS FETCH NEXT 3 ROWS ONLY;
Resumen LIMIT / SELECT TOP
-
TOP n(SQL Server) ≈LIMIT n(SQLite, MySQL, PostgreSQL). -
Combina con
ORDER BYpara rankings. -
LIMIT n OFFSET msaltamfilas y devuelven. -
En SQL Server también existe
FETCH FIRST n ROWS ONLY(estándar SQL).
Cómo practicar en el editor
1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.