Мені цікаво вивчити деякі (в ідеалі) бази даних агностики щодо вибору n- го рядка з таблиці бази даних. Також було б цікаво подивитися, як цього можна досягти, використовуючи нативну функціональність наступних баз даних:
- SQL Server
- MySQL
- PostgreSQL
- SQLite
- Oracle
В даний час я роблю щось подібне до SQL Server 2005, але мені було б цікаво ознайомитися з іншими більш агностичними підходами:
WITH Ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate
FROM Orders)
SELECT *
FROM Ordered
WHERE RowNumber = 1000000
Заслуга вищезгаданого SQL: Веб-журнал Firoz Ansari
Оновлення: Дивіться відповідь тролів Арвіна щодо стандарту SQL. Тролі, чи є у вас посилання, які ми можемо навести?
OrderNo N
, то введіть у таблицю стовпчик OrderSequenceNo та створіть його з незалежного генератора послідовностей після створення нового замовлення.
offset x fetch first y rows only
. На даний момент підтримується (принаймні) Postgres, Oracle12, DB2.