Saya tertarik mempelajari beberapa cara agnostik database untuk memilih baris ke- n dari tabel database. Ini juga akan menarik untuk melihat bagaimana ini dapat dicapai dengan menggunakan fungsionalitas asli dari database berikut:
- SQL Server
- MySQL
- PostgreSQL
- SQLite
- Peramal
Saat ini saya sedang melakukan sesuatu seperti berikut ini di SQL Server 2005, tetapi saya akan tertarik melihat pendekatan yang lebih agnostik:
WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Penghargaan untuk SQL di atas: Weblog Firoz Ansari
Pembaruan: Lihat Troels jawaban Arvin mengenai standar SQL. Troel, apakah Anda punya tautan yang bisa kami kutip?
OrderNo N, maka perkenalkan kolom OrderSequenceNo di tabel dan hasilkan dari generator urutan independen saat membuat pesanan baru.
offset x fetch first y rows only. Saat ini didukung oleh (setidaknya) Postgres, Oracle12, DB2.