ROW_NUMBER() 를 이용하여 간단한 페이징 쿼리를 만들어 보자!
ROW_NUMBER() 를 SQL2005 설명을 빌리자면
* 결과 집합 파티션 내의 행 일련 번호를 반환합니다.
이렇게 설명할 수 있다.
자 ROW_NUMBER() 를 간단히 실행해 보자..
SELECT ROW_NUMER() OVER ( ORDER BY IDX DESC ) As rownum FROM TABLE1
위 SQL 구문은 TABLE1에서 IDX 를 역순으로 일렬번호를 리턴한다.
rownum
1
2
3
4
..
..
이렇게 일렬번호를 리턴한다.
자~ 이제 row_number()의 기능을 알았으면.. 간단한 페이지 쿼리를 만들어 보자..
설명은 그 다음에..
declare @page int declare @pageSize int set @pageSize = 10 set @page = 1
|
위 쿼리는 tb_table 의 idx 가 역순으로 정렬된 상태에서 첫번째 페이지 10개의 레코드를 보여준다.
두번째 페이지를 보고 싶다면..
rownum 이 11 부터 10개가 보이면 되니까 .. 조건문
where rownum > 10 이 되면 두번째 페이지가 보여진다.
간단하다.. 페이징쿼리가..
난 row_number()라는게 있다는 것을 이번 기회에 처음 주워들었다^^
왜 이제야 알았지..
아~ 근데 MS_SQL 2005 이상만 지원한다.
요즘 날로 바쁘다보니.. 힘들어 죽갔다..
다음에 실무에 써봐야겠다 ㅋㅋ.
머 성능이 어쩌구 저쩌구하면.. 쓰던거 쓰지 머..
성능을 잘 모르겠다.. 뒷 페이지로 갈수록 좀 더 많은 rownum 을 가져올테니 성능은 뒤로 갈수록 떨어지겠지..
암튼.. 이런게 있다.
..
'개발 > C# .NET' 카테고리의 다른 글
AJAX를 이용한 ASP.NET 웹사이트 맛배기 샘플 (0) | 2008.08.27 |
---|---|
web query분석기 (0) | 2008.08.27 |
C#에서 네트웍정보 조회하기 (0) | 2008.08.27 |