게시판등과 같은 곳에서 페이징 처리할때 여러가지 방법이 있겠지만 SQL Server의 top 을 쓰면 편리하다고 들었다.
그래서 oracle도 같은 방법을 찾아보아서 한번 정리해 보았음
# 예제테이블
CREATE TABLE TB_Board (
[nID] [int] IDENTITY (1, 1) NOT NULL ,
[sTitle] [varchar] (100) COLLATE Korean_Wansung_CI_AS NOT NULL ,
[sContent] [text] COLLATE Korean_Wansung_CI_AS NULL ,
[sContentType] [varchar] (4) COLLATE Korean_Wansung_CI_AS NULL ,
[nViewCount] [int] NOT NULL ,
[nModifyCount] [int] NOT NULL ,
[dCreateDate] [datetime] NOT NULL ,
[dModifyDate] [datetime] NOT NULL ,
[cUseFlag] [char] (1) COLLATE Korean_Wansung_CI_AS NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
위 테이블은 SQL Server에서 생성하는 게시판테이블 Script임.
[사용할 변수]
pageRowCnt : 페이지에 보여줄 행수
page : 보여질 페이지
# SQL Server
sql = "SELECT TOP " & pageRowCnt & " * FROM TB_Board " & _
"WHERE nID not in " & _
"(SELECT TOP " & ((page-1)*pageRowCnt) & ") nID FROM TB_Board " & _
" ORDER BY nID DESC)" & _
"ORDER BY nID desc"
# Oracle
sql = "SELECT * FROM " & _
"(SELECT nID FROM TB_Board " & _
" WHERE nID NOT IN " & _
" (SELECT nID FROM " & _
" (SELECT nID FROM TB_Board ORDER BY nID DESC) " & _
" WHERE ROWNUM <= " & ((page-1)*pageRowCnt) & ") " & _
"ORDER BY nID DESC) " & _
"WHERE ROWNUM <= " & pageRowCnt
[출처] [본문스크랩] [SQL] 페이징 처리|작성자 수유산장
출처 : http://blog.naver.com/siro012/60020566953.
'Computer > MSSQL' 카테고리의 다른 글
저장프로시저(SP)에서 RecordCount -1 반환 (0) | 2017.10.31 |
---|---|
DATETIME 변환 (0) | 2017.10.31 |
테이블 용량 및 row 수 확인 (0) | 2017.10.30 |
MSSQL 스크립트로 테이블 열 설명 붙이기 (0) | 2011.12.20 |