반응형
보통 게시판 페이징 쿼리를 만들 때 두가지 방법을 쓴다.
구닥다리 방법은 먼저 불러올 전체 카운트를 구하고 이를 토대로 실제 불러오는 쿼리에서 NOT IN으로 제외하고 불러오는 쿼리인데
똑같은 쿼리를 남발해야 하므로 아직도 사용하는 곳이 있다면 문제가 심각해 보이므로 PASS
두번째 방법은 ROW_NUMBER를 이용하는 쿼리인데 ROW_NUMBER()로 내마음속 번호를 생성시킨 후 이를 기준으로 페이징을 한다.
그나마 써줄만하다.
SELECT
MEMTBL.USERID_IDX
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY USERID_IDX) AS ROWNUM, USERID_IDX FROM MEMBER_TABLE
) AS MEMTBL
WHERE
MEMTBL.ROWNUM BETWEEN 1 AND 10
마지막으로 MS-SQL 2012 이후 부터 사용가능한 쿼리인데 아래처럼 간결한 쿼리가 가능해졌다.
SELECT
USERID_IDX
FROM
MEMBER_TABLE WITH (NOLOCK)
ORDER BY
USERID_IDX
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
시작위치는 OFFSET으로 지정하고
FETCH NEXT로 몇번까지 불러올지 지정만 하면 그만이다.
반응형
'모바일 & 앱' 카테고리의 다른 글
classic asp의 불치병 2차원 배열 동적할당 (0) | 2023.04.14 |
---|---|
MSSQL 컬럼을 보유한 테이블 조회, 전체 컬럼 확인하기 (0) | 2023.04.10 |
애플 소셜 로그인(Sign in with apple) 구현시 이메일 가린 회원에게 이메일 발송 설정 방법 (0) | 2023.03.22 |
Visual Studio 2022 언어 변경하기 (language pack install) (0) | 2023.01.13 |
Visual Studio Installer 다운로드 속도 느림 현상 해결하기 (0) | 2023.01.12 |