오라클에서는 일반적으로 페이징을 위해 다음과 같이 쿼리합니다.임시 테이블을 만들지 않고 Sybase에서 페이징을 수행하려면 어떻게합니까? (oracle rownum issue)
SELECT * FROM (SELECT *, rownum rid FROM TABLEA WHERE rownum <= #pageend#)
WHERE rid > #pagestart#
그러나 Sybase DBMS에는 "rownum"기능이 없습니다.
Sybase에서이 쿼리를 정확하게 수행하려면 어떻게해야합니까?
몇 가지 방법을 찾았습니다.
사용 "행 개수"
설정된 행 개수 10
선택 * TABLEA에서
사용 아이덴티티 (있도록 임시 테이블)
SELECT * ROWNUM = IDENTITY (8) TABLE #의 #TEMP에서
SELECT * FROM #TEMP WHER E ROWNUM < #의 pageend 번호 AND ROWNUM> = # pagestart #
DROP의 표 #TEMP
이 내가 원하는 것을하지 않습니다.
rowcount가 세션 수준에서 설정되어 있으며 임시 테이블을 만들고 싶지 않습니다. 당신이 당신의 테이블에 고유 ID 열이있는 경우
좋은 생각인가요? id 열이 1에서 시작한다는 것을 어떻게 알 수 있습니까? 그리고 그것에 구멍이 없다? 나는 이것이 대답이 아니라고 생각한다. –