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.