반응형
SQL Server 2012 에서 Offset/Fetch 를 사용하여 효과적인 페이징처리를 하는 방법입니다.
SELECT seqnum,id, Name, celnumber,RegistDate
FROM Member_info
ORDER BY seqnum DESC
OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY;
2페이지를 조회하려면
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY; 로 OFFSET 을 수정하면되며
FETCH NEXT 는 한번에 조회할 데이터 갯수입니다.
온라인 설명서 : http://msdn.microsoft.com/ko-kr/library/ms188385(v=sql.110).aspx#Offset
Offset Fetch에 대한 제한 사항
- 외부 쿼리와 상관 관계를 만들 수 없습니다.
- OVER 절은 OFFSET 및 FETCH를 지원하지 않습니다.
- OFFSET 및 FETCH는 INSERT, UPDATE, MERGE 및 DELETE 문에서 직접 지정할 수 없지만 이러한 문에 정의된 하위 쿼리에서는 지정할 수 있습니다
- UNION, EXCEPT 또는 INTERSECT 연산자를 사용하는 쿼리에서는 쿼리 결과의 순서를 지정하는 마지막 쿼리에서만 OFFSET 및 FETCH를 지정할 수 있습니다.
- 같은 쿼리 식(같은 쿼리 범위)에서 TOP을 OFFSET 및 FETCH와 결합할 수 없습니다.
안정된 최적화를 위해서는 아래 조건을 만족해야 합니다.
- 쿼리에 사용되는 기본 데이터가 변경되지 않아야 합니다.즉, 쿼리와 연결된 행이 업데이트되지 않거나 페이지에 대한 모든 쿼리 요청이 스냅숏 또는 직렬화 가능 트랜잭션 격리를 사용하여 단일 트랜잭션에서 실행되어야 합니다.
(위 온라인 설명서의 “단일 트랜잭션에서 여러 쿼리 실행” 쿼리 예를 참고하십시오.) - ORDER BY 절이 고유한 열 또는 열의 조합을 포함해야 합니다.
출처: https://redju.tistory.com/139 [redJu(홍주)]
728x90
반응형
'DataBase > MSSQL' 카테고리의 다른 글
[MSSQL] SQL Server 에이전트로 API 호출 (0) | 2021.03.13 |
---|---|
[MSSQL]구분문자열로 Split처리 함수 (0) | 2019.08.20 |
[MSSQL] 이전행과 다음행 데이터를 가져오는 LAG,LEAD 함수 (0) | 2019.07.10 |
[MSSQL] 테이블, 컬럼 코멘트 조회 (0) | 2018.12.18 |
[MSSQL]다른 테이블과 JOIN 해서 UPDATE 하기 (0) | 2018.08.01 |