본문 바로가기
Develop/Database

[MSSQL] 쿼리로 페이지 처리 기능 구현하기

by 코딩의성지 2022. 2. 1.

하이.

 

오늘은 웹 사이트를 구축하거나할 때 많이 사용되는 페이징 처리 기능을 쿼리로 구현해보려고한다.

 

OFFSET과 FETCH NEXT를 이용하면되는데, 간단하게 각각의 역할을 말씀드리면

OFFSET 은 지정한 행의 수만 큼 건너 뛴 후에 출력하는 기능을 제공한다.

 

아래 쿼리를 보자.

SELECT userID, name, birthYear FROM UserTbl ORDER BY userId;

위의 결과는 10명의 회원을 userId로 오름차순하여 출력한 결과를 보여준다.

 

여기서 OFFSET 4 ROWS를 추가하면

SELECT userID, name, birthYear FROM UserTbl ORDER BY userId OFFSET 4 ROWS;

결과가 바비킴,은지원, 조관우, 조용필은 제외되고 김범수~ 윤종신까지의 결과만 나올 것이다.

 

여기서 몇개씩 출력을 정하는 것이 FETCH NEXT 인데 아래 SQL 처럼 추가해 줄 수 있다.

FETCH NEXT는 출력될 행수를 

SELECT userID, name, birthYear FROM UserTbl ORDER BY userId OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;

이렇게 하면 결과는 김범수~ 이승기 까지 4개 만 조회가 될것이다.

 

이 두가지 기능을 이용하면 페이징 기능을 충분히 이용할 수 있다.

예를 들어 코드 내에서 OFFSET에는 이전 페이지에 있던 컨텐츠의 갯수를 넣고, FETCH NEXT에는 출력하고자하는 페이지 컨텐츠 수를 넣어 주면 페이지 기능이 완성된다 .

 

끝.

반응형

댓글