SPATIUM Desktop
주소복사
About Operating System Languages Tools Favorites Notice Visit TEST  
     ADK (2)
     android (3)
     ASP (5)
     ASP.Net (1)
     C# (5)
     HTML (9)
     JAVA (6)
     JavaScript (9)
     jQuery (5)
     Mobile Web (2)
     Oracle (8)
     PHP (7)
     Spring Framework (4)
     SQL (15)
     WPF (5)
   ID  
   Password  
  |  
  Location United States
  IP Address 54.80.188.87
2018. 10
123456
78910111213
1415161718
19
20
21222324252627
28293031
Category  Languages, SQL
Writer 김태우 Date 2013-12-04 01:13:57 Visit 1780
CTE를 이용한 페이징
 

CTE( common table expression )

 
CTE( 공통 테이블 식): 임시로 이름이 지정된 결과 집합
서브쿼리 혹은 조인으로 사용될 부분을 미리 정의해 놓은 것이다.
 
* 예제) CTE를 이용한 페이징 쿼리(Web)
 
CREATE TABLE Article (
idx INT IDENTITY (1,1)
,title VARCHAR(1000)
, Contents VARCHAR(1000)
)
 
CREATE UNIQUE CLUSTERED INDEX ix on dbo.Article (idx)
 
INSERT into dbo.Article (title, contents)
VALUES ('title','contents')
GO 100
 
 
CREATE PROC dbo.usp_article
(
 @PAGENUM INT
 , @PAGESIZE INT
) AS
SET NOCOUNT ON;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 
WITH PAGE_LIST AS
(
 SELECT ROW_NUMBER() OVER (ORDER BY IDX DESC) AS ROWNUM,*
 FROM dbo.Article
)
SELECT * FROM PAGE_LIST
WHERE ROWNUM BETWEEN ((@PAGENUM - 1) * @PAGESIZE) + 1 AND @PAGENUM * @PAGESIZE;
GO
--BETWEEN [(페이지번호-1)*페이지크기+1] and [페이지번호*페이지크기]
 
EXEC dbo.usp_article 1,10 -- 1Page 10개데이터가져오기
EXEC dbo.usp_article 2,10 -- 2Page 10개데이터가져오기
EXEC dbo.usp_article 3,10 -- 3Page 10개데이터가져오기
 
ROW_NUMBER ( ) 참고 : http://msdn.microsoft.com/ko-kr/library/ms186734.aspx
 
 
Tags  CTE, paging, 페이징
  Relation Articles
[Languages-SQL] CTE를 이용한 페이징 (2013-12-04 01:13:57)
  Your Opinion
Member ID
150 letters
Copyright (C) SPATIUM. All rights reserved.
[SPATIUM]WebMaster Mail