Maison >base de données >tutoriel mysql >Comment puis-je sélectionner la nième ligne d'une table de base de données SQL ?
Récupération de la nième ligne d'une table SQL
Ce guide montre comment sélectionner la nième ligne d'une table de base de données SQL, couvrant à la fois les méthodes indépendantes de la base de données et spécifiques à la base de données.
Une approche universelle
Bien que les standards SQL offrent des fonctionnalités de sélection de lignes, de nombreux systèmes de bases de données les implémentent différemment. Une méthode fiable et inter-bases de données utilise une sous-requête avec la ROW_NUMBER()
fonction analytique :
<code class="language-sql">WITH OrderedRows AS ( SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNum, OrderID, OrderDate FROM Orders ) SELECT * FROM OrderedRows WHERE RowNum = n</code>
Remplacez n
par le numéro de ligne souhaité, OrderID
par votre clé primaire ou colonne de tri, et Orders
par le nom de votre table.
Techniques spécifiques aux bases de données
PostgreSQL et MySQL :
Ces bases de données utilisent les clauses OFFSET
et LIMIT
(notez qu'il s'agit d'une approche non standard) :
<code class="language-sql">SELECT * FROM your_table LIMIT 1 OFFSET n-1;</code>
Ici, n-1
est utilisé car OFFSET
commence à compter à partir de 0.
Oracle, DB2 et MSSQL :
Ces systèmes prennent en charge les fonctions de fenêtre standard :
<code class="language-sql">SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY key_column ASC) AS rn, * FROM your_table ) AS numbered_rows WHERE rn = n;</code>
Remplacez key_column
par votre clé primaire ou colonne de tri, your_table
par le nom de votre table et n
par le numéro de ligne souhaité.
Mises à jour PostgreSQL et SQLite :
PostgreSQL version 8.4 et versions ultérieures, et SQLite version 3.25.0 et versions ultérieures, prennent toutes deux en charge les fonctions de fenêtre standard, ce qui rend l'approche universelle décrite ci-dessus entièrement compatible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!