하이.
오늘은 웹 사이트를 구축하거나할 때 많이 사용되는 페이징 처리 기능을 쿼리로 구현해보려고한다.
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에는 출력하고자하는 페이지 컨텐츠 수를 넣어 주면 페이지 기능이 완성된다 .
끝.
반응형
'Develop > Database' 카테고리의 다른 글
[MSSQL] WITH 절을 이용해 CTE(Common Table Expression) 표현하기 (1) | 2022.02.02 |
---|---|
[MSSQL] 찾고자 하는 테이블 정보가 기억나지 않을 때 (0) | 2022.02.01 |
[MSSQL] 평균 값 구할 때, 소수점 자리까지 구하는 방법 (0) | 2022.02.01 |
[Database] Join 정리 (0) | 2021.08.21 |
[Database] 트랜잭션이란 뭘까? (0) | 2021.08.07 |
댓글