SELECT 별칭1.*
FROM
( SELECT
(ROW_NUMBER() OVER (ORDER BY 별칭2.칼럼명 )) AS rownumber,
별칭2.*
FROM 테이블명 별칭2
) 별칭1
WHERE 별칭1.rownumber > (#{page_no}-1)*#{page_size} AND 별칭1.rownumber <= #{page_no}*#{page_size}
- 별칭2라는 새로운 테이블을 만든뒤 rownum이라는 칼럼을 새로 생성(ROW_NUMBER() 부분)하고, 별칭2의 칼럼과 데이터값들을 모두 넣어준다(별칭2.* 부분).
- 그것을 다시 별칭1이라고 지정한다.
- 그러면 별칭1은 기존 테이블에 rownum 칼럼이 합쳐진 테이블이 된다.
- 그다음 별칭1의 rownumber 칼럼 값(order 되어있음)을 이용해 페이징 처리를 하고
- 칼럼 값들을 모두 출력한다.
'DBMS > SQL' 카테고리의 다른 글
INNER JOIN(JOIN) 과 LEFT JOIN의 차이점 (0) | 2022.04.27 |
---|---|
inner join 사용해서 테이블 연결하기 (2) | 2021.10.19 |
group by로 묶어서 나타내기 (0) | 2021.10.19 |