Eu estou interessado em aprender algumas maneiras (idealmente) de banco de dados agnóstica de selecionar o n º linha de uma tabela de banco de dados. Também seria interessante ver como isso pode ser alcançado usando a funcionalidade nativa dos seguintes bancos de dados:
- servidor SQL
- MySQL
- PostgreSQL
- SQLite
- Oráculo
Atualmente, estou fazendo algo como o seguinte no SQL Server 2005, mas estaria interessado em ver as abordagens mais agnósticas de outras pessoas:
WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Crédito para o SQL acima: Firoz Ansari's Weblog
Atualização: Veja a resposta de Troels Arvin sobre o padrão SQL. Troels, você tem algum link que possamos citar?
OrderNo N
, introduza uma coluna OrderSequenceNo na tabela e gere-a a partir de um gerador de sequência independente ao criar um novo pedido.
offset x fetch first y rows only
. Atualmente suportado por (pelo menos) Postgres, Oracle12, DB2.