Database
MSSQL * OFFSET - FETCH 페이징 쿼리 ( ROW_NUMBER() 대체 )
___l_i_ *
2022. 5. 12. 15:27
해당 방법은 MSSQL 2012 이후(=11.X 이상)의 버전에서만 지원 가능하다.
MSSQL 2012 이전(=11.X 미만)의 경우 OFFSET 과 FETCH 를 지원하지 않기 때문에 ROW_NUMBER() 로 번호 정렬을 붙이고,
중첩쿼리를 이용하여 페이징 처리를 해주어야 한다.
사용방법
ORDER BY 정렬대상_칼럼명
OFFSET 현재까지_행의_갯수 ROWS
FETCH NEXT 가져올_행의_수 ROWS ONLY
더보기
첫번째 페이지 10개 가져올 쿼리
ORDER BY name
OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY
두번째 페이지 10개 가져오는 쿼리
ORDER BY name
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY
중첩 쿼리가 빠지기 때문에 쿼리가 간단해지고 성능상의 이점이 생긴다고 한다.
Thanks for 🙈