Je suis intéressé à apprendre quelques méthodes (idéalement) indépendantes de la base de données pour sélectionner la n ème ligne dans une table de base de données. Il serait également intéressant de voir comment cela peut être réalisé en utilisant la fonctionnalité native des bases de données suivantes:
- serveur SQL
- MySQL
- PostgreSQL
- SQLite
- Oracle
Je fais actuellement quelque chose comme ce qui suit dans SQL Server 2005, mais je serais intéressé à voir d'autres approches plus agnostiques:
WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Crédit pour le SQL ci-dessus: le blog de Firoz Ansari
Mise à jour: voir la réponse de Troels Arvin concernant la norme SQL. Troels, avez-vous des liens que nous pouvons citer?
OrderNo N
, introduisez une colonne OrderSequenceNo dans le tableau et générez-la à partir d'un générateur de séquence indépendant lors de la création d'une nouvelle commande.
offset x fetch first y rows only
. Actuellement pris en charge par (au moins) Postgres, Oracle12, DB2.