페이지 나누기의 몇 가지 ql 문장을 조회합니다

3832 단어
sql 서버의 페이지 조회 sql 문장은 mysql와 같지 않습니다. mysql는limit으로 sql 페이지 조회를 실현할 수 있습니다.예:
select * from news where id>=(select id from news limit 250000,1) limit 10; //       
select * from news limit 250000,10;

mysql에서 limit은 항상 페이지 크기로 설정됩니다.offset 계산 공식은 페이지Size*(pageIndex-1)이지만, 제가 오늘 주로 말하는 것은 mysql이 아니라 sql 서버의 페이지입니다.sql 서버에 limit 키워드가 없고 top 키워드에 대응하기 때문에 다음과 같은 방법으로 조회할 수 있습니다. 첫 번째:
SELECT  *
FROM    dbo.t_user
WHERE   userID IN ( SELECT TOP 3
                            userID
                    FROM    t_user
                    WHERE   userID NOT IN ( SELECT TOP 6
                    userID
                    FROM    t_user ) )

두 번째: PageSize(페이지 크기)와 PageIndex(페이지 색인, 초기에는 1)가 모두 변수입니다.
SELECT  *
FROM ( SELECT TOP PageSize 
                    *
          FROM      ( SELECT TOP [PageIndex*PageSize]
                                *
                      FROM      dbo.t_user
                      ORDER BY  id ASC
                    ) AS b
          ORDER BY  id DESC
        ) AS c
ORDER BY id ASC;

세 번째: PageSize(페이지 크기)와 PageIndex(페이지 색인, 초기 가설 1)는 모두 변수입니다.
SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY userID ASC ) AS rownumber ,
                    *
          FROM      dbo.t_user
          WHERE     1 = 1
        ) AS t
WHERE   t.rownumber > (PageSize *(PageIndex-1))
        AND t.rownumber <= (PageSize *PageIndex)

좋은 웹페이지 즐겨찾기