comnic's Dev&Life

[SQL SERVER]페이징처리(paging) - OFFSET ROWS FETCH 본문

MS-SQL

[SQL SERVER]페이징처리(paging) - OFFSET ROWS FETCH

comnic 2019. 4. 21. 09:03
반응형

SQL SERVER 2012부터 새로운 OFFSET을 지원해주기에 훨씨 코드가 쉬워진 듯 합니다. 성능도 20%정도 향상되었다고 하는데, 비교해 보지는 못하였습니다. 다만 쿼리가 훨씬 간단해져서 가급적 애용하고자 정리해 봅니다.

쿼리 뒤에 다음과 같은 형식으로 사용하시면 됩니다.

ORDER BY column_list [ASC |DESC]
OFFSET offset_row_count {ROW | ROWS}
FETCH {FIRST | NEXT} fetch_row_count {ROW | ROWS} ONLY

 

예시1. User 테이블 10개 이후 부터 추출(10개 이후 전체)

SELECT userid, username, userlevel FROM User 
ORDER BY username ASC 
OFFSET 10 ROWS

 

예시2. User 테이블 10개 이후 부터 10개 추출(2페이지만, 10개부터 10개만)

SELECT userid, username, userlevel FROM User 
ORDER BY username ASC 
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY

 

아래 그림을 보면 보다 쉽게 이해할 수 있습니다.

출처 : http://www.sqlservertutorial.net/sql-server-basics/sql-server-offset-fetch/

반응형
Comments