sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo seleccionar la fila n en una tabla de base de datos SQL?

Hay formas de hacer esto en partes opcionales del estándar, pero muchas bases de datos admiten su propia forma de hacerlo.

Un sitio realmente bueno que habla de esto y otras cosas es http://troels. arvin.dk/db/rdbms/#select-limit .

Básicamente, PostgreSQL y MySQL admiten lo no estándar:

SELECT...
LIMIT y OFFSET x 

Oracle, DB2 y MSSQL admiten las funciones de ventanas estándar:

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
    columns
  FROM tablename
) AS foo
WHERE rownumber <= n

(que acabo de copiar del sitio vinculado anteriormente ya que nunca uso esos DB)

Actualizar: A partir de PostgreSQL 8.4, las funciones de ventana estándar son compatibles, así que espere que el segundo ejemplo también funcione para PostgreSQL.

Actualizar: SQLite agregó compatibilidad con funciones de ventana en la versión 3.25.0 el 2018-09-15, por lo que ambas formas también funcionan en SQLite.