Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment sélectionner la nième ligne dans une table de base de données SQL ?

Il existe des moyens de le faire dans des parties facultatives de la norme, mais de nombreuses bases de données prennent en charge leur propre façon de le faire.

Un très bon site qui parle de cela et d'autres choses est http://troels. arvin.dk/db/rdbms/#select-limit .

Fondamentalement, PostgreSQL et MySQL prennent en charge les éléments non standard :

SELECT...
LIMIT y OFFSET x 

Oracle, DB2 et MSSQL supportent les fonctions de fenêtrage standard :

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

(que je viens de copier du site lié ci-dessus puisque je n'utilise jamais ces bases de données)

Mettre à jour : Depuis PostgreSQL 8.4, les fonctions de fenêtrage standard sont prises en charge, alors attendez-vous à ce que le deuxième exemple fonctionne également pour PostgreSQL.

Mettre à jour : SQLite a ajouté la prise en charge des fonctions de fenêtre dans la version 3.25.0 le 2018-09-15 afin que les deux formulaires fonctionnent également dans SQLite.