데이터베이스 테이블에서 n 번째 행 을 선택하는 (이상적으로) 데이터베이스 불가지론 적 방법을 배우고 싶습니다 . 다음 데이터베이스의 고유 기능을 사용하여 이것이 어떻게 달성 될 수 있는지 보는 것도 흥미로울 것입니다.
- SQL 서버
- MySQL
- PostgreSQL
- SQLite
- 신탁
현재 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 표준에 관한 Troels Arvin의 답변을 참조하십시오 . 트롤, 우리가 인용 할 수있는 링크가 있습니까?
OrderNo N
을 도입 하고 새 주문을 만들 때 독립 시퀀스 생성기 에서 생성하십시오 .
offset x fetch first y rows only
. 현재 Postgres, Oracle12, DB2에서 지원됩니다.