티스토리 뷰

오라클 페이징 쿼리 원리


select a.*

from(

select row_number() over(order by app asc) as r_num

,count(*) over () as totcount

,(row_number() over (order by app desc)) page0

,(row_number() over (order by app desc)-1) / 5 as page1

,floor( (row_number() over(order by app desc)-1) -1 / 5 +1 ) as page0

from table

)a

;


결과:

r_num totcount page0 page1 page

100 100 1 0 1

99 100 2 0.2 1

98 100 3 0.4 1

97 100 4 0.6 1

96 100 5 0.8 1

95 100 6 1 2

94 100 7 1.2 2

93 100 8 1.4 2

92 100 9 1.6 2

91 100 10 1.8 2

90 100 11 2 3

89 100 12 2.2 3

88 100 13 2.4 3

87 100 14 2.6 3



2페이지만 출력한다고 했을때는


select a.*

from(

select row_number() over(order by app asc) as r_num

,count(*) over () as totcount

,(row_number() over (order by app desc)) page0

,(row_number() over (order by app desc)-1) / 5 as page1

,floor( (row_number() over(order by app desc)-1) -1 / 5 +1 ) as page0

from table

)a

where page=2

;


결과:

r_num totcount page0 page1 page

95 100 6 1 2

94 100 7 1.2 2

93 100 8 1.4 2

92 100 9 1.6 2

91 100 10 1.8 2

'자바(Java)' 카테고리의 다른 글

자바 aes 암호화 복호화  (0) 2018.10.02
자바 base64 인코딩 디코딩  (0) 2018.10.02
[자바] key 생성  (0) 2018.10.01
[java] dextuploadnx를 이용한 자바 파일 업로드  (0) 2018.10.01
jquery 로딩 이미지 코드  (0) 2018.09.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함