오라클 페이징(paging) 원리
웹 개발을 하다보면 게시판 목록을 만들일이 생긴다.
게시판 목록개발에서 빠질 수 없는게 페이징(paging) 이다.
요새는 페이징 없이도 많이들 하는데 그래도 페이징을 하는데도 있으니 배워보자.
우선 페이징 하다보면
floor(row_number() over (order by emp desc)-1)/10+1)
이렇게 생긴것을 보게될 것이다.
이게 뭔지 풀어보면
select row_number() over (order by emp desc)
,(row_number() over (order by emp desc)-1)
,(row_number() over (order by emp desc)-1)/10
,(row_number() over (order by emp desc)-1)/10+1
,floor(row_number() over (order by emp desc)-1)/10+1)
from emp
위에 처럼 쿼리가 되어 있다고 할때
1 |
0 |
0 |
1 |
1 |
2 |
1 |
0.1 |
1.1 |
1 |
3 |
2 |
0.2 |
1.2 |
1 |
4 |
3 |
0.3 |
1.3 |
1 |
5 |
4 |
0.4 |
1.4 |
1 |
6 |
5 |
0.5 |
1.5 |
1 |
7 |
6 |
0.6 |
1.6 |
1 |
8 |
7 |
0.7 |
1.7 |
1 |
9 |
8 |
0.8 |
1.8 |
1 |
10 |
9 |
0.9 |
1.9 |
1 |
11 |
10 |
1 |
2 |
2 |
12 |
11 |
1.1 |
2.1 |
2 |
13 |
12 |
1.2 |
2.2 |
2 |
14 |
13 |
1.3 |
2.3 |
2 |
15 |
14 |
1.4 |
2.4 |
2 |
16 |
15 |
1.5 |
2.5 |
2 |
17 |
16 |
1.6 |
2.6 |
2 |
18 |
17 |
1.7 |
2.7 |
2 |
19 |
18 |
1.8 |
2.8 |
2 |
20 |
19 |
1.9 |
2.9 |
2 |
식으로 나온다.
맨 오른쪽이 페이징 번호이다.
숫자 10은 목록 출력건수이니 20,30으로 테스트 해보면 된다.