728x90
반응형
728x170
▶ 페이징 조회하기 (SELECT문) 예제
DECLARE @SourceSQL NVARCHAR(MAX);
DECLARE @RowNumberOrder NVARCHAR(300);
DECLARE @CurrentPage NVARCHAR(100);
DECLARE @LineCountPerPage NVARCHAR(100);
SET @SourceSQL = 'SELECT A.* FROM PhotoBook AS A WHERE A.MenuID = 44';
SET @RowNumberOrder = 'A.ID ASC';
SET @CurrentPage = '2';
SET @LineCountPerPage = '20';
EXECUTE SelectPage @SourceSQL, 'A.ID ASC', 2, 20;
728x90
▶ 페이징 조회하기 (SELECT문)
CREATE PROCEDURE [dbo].[SelectPage]
(
@SourceSQL NVARCHAR(MAX) -- 소스SQL문
,@RowNumberOrder NVARCHAR(300) -- ROW_NUMBER 함수정렬
,@CurrentPage NVARCHAR(100) -- 현재페이지
,@LineCountPerPage NVARCHAR(100) -- 페이지당라인수
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL NVARCHAR(MAX);
SET @SQL = N'
SELECT A.*
FROM
(
SELECT
ROW_NUMBER() OVER(ORDER BY ' + @RowNumberOrder + ') AS RowNumber,
A.*
FROM
(
' + @SourceSQL + '
) AS A
) AS A
WHERE A.RowNumber BETWEEN ((' + @CurrentPage + ' - 1) * ' + @LineCountPerPage + ' + 1) AND (' + @CurrentPage + ' * ' + @LineCountPerPage + ');
';
EXECUTE SP_EXECUTESQL @SQL;
END
GO
728x90
반응형
그리드형(광고전용)
'Database > SQLServer' 카테고리의 다른 글
[DATABASE/SQLSERVER] 문자열에서 테이블 생성하기 (0) | 2014.12.05 |
---|---|
[DATABASE/SQLSERVER] 저장 프로시저 정보 구하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] 테이블 정보 구하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] CPU 점유율 높은 SQL문 조회하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] CURSOR 사용하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] 페이징 조회하기 (WITH문) (0) | 2014.12.05 |
[DATABASE/SQLSERVER] PWDCOMPARE 함수 : 패스워드 일치 여부 조사하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] PWDENCRYPT 함수 : 패스워드 암호화 하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] 데이터베이스 제약 조건 컬럼 조회하기 (0) | 2014.12.05 |
[DATABASE/SQLSERVER] 데이터베이스 제약 조건 조회하기 (0) | 2014.12.05 |
댓글을 달아 주세요