Estoy interesado en aprender algunos (idealmente) de base de datos agnóstico formas de seleccionar el n º fila de una tabla de base de datos. También sería interesante ver cómo se puede lograr esto utilizando la funcionalidad nativa de las siguientes bases de datos:
- servidor SQL
- MySQL
- PostgreSQL
- SQLite
- Oráculo
Actualmente estoy haciendo algo como lo siguiente en SQL Server 2005, pero estaría interesado en ver otros enfoques más agnósticos:
WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Crédito por el SQL anterior: el blog de Firoz Ansari
Actualización: Vea la respuesta de Troels Arvin con respecto al estándar SQL. Troels, ¿tienes algún enlace que podamos citar?
OrderNo N
, introduzca una columna OrderSequenceNo en la tabla y generarla desde un generador de secuencia independiente al crear un nuevo orden.
offset x fetch first y rows only
. Actualmente soportado por (al menos) Postgres, Oracle12, DB2.