significado - palabras reservadas de sql y para que sirven
Diferencia entre las palabras clave superior y límite en SQL (6)
Como mencioné en mi comentario anterior a la respuesta de Martin Smith, hay productos que admiten tanto LIMIT
como TOP
(como puede ver aquí ). La diferencia es que TOP
solo selecciona los primeros n registros, pero LIMIT
permite la definición de un desplazamiento para recuperar un rango específico de registros:
SELECT * FROM ... LIMIT 5 OFFSET 10
Esta declaración selecciona los primeros 5 registros, después de omitir 10 registros y esto no es posible con TOP
.
El ejemplo que publiqué solo se compara con el DBS que he vinculado anteriormente. No revisé un estándar SQL, por falta de tiempo.
Una pregunta rápida. Supongamos que tengo las siguientes dos consultas:
SELECT TOP 2 * FROM Persons;
y
SELECT * FROM Persons limit 2;
Quiero saber la diferencia entre la ejecución de las 2 consultas anteriores? Básicamente, quiero saber cuándo debo usar la palabra clave limit
y cuándo es apropiado usar la palabra clave top
. Además, ¿cómo devuelve la base de datos los resultados basados en las 2 consultas anteriores?
No hay diferencia. Las palabras clave TOP
y LIMIT
funcionan de manera idéntica y devolverán lo mismo.
Si está utilizando SQL Server, use TOP
si está utilizando MySQL
o Postgres
use Limit
!
AFAIK no hay ningún producto que actualmente sea compatible con ambos. Aquí hay una lista de implementaciones actuales y aquí hay otra (cubre más productos pero con menos detalles)
TOP & LIMIT ambos trabajan en Amazon Redshift
un gran error, LIMIT es lento porque select es return full y luego el servidor de base de datos devuelve solo datos limitados. Cuando es posible se usa para TOP.
limit
funciona en MySQL y PostgreSQL, los top
trabajos en SQL Server, rownum
funciona en Oracle.