SqlServer 的几种分页方式


方式一:
select top 200 * from view_OrganResource
where  1=1 and OrganID = 57 and
(OrderID not in(select top 1000 OrderID from tb_OrganResource
where  1=1 and  OrganID = 57 order by uploadtime desc))
order by uploadtime desc --5858 1980


方式二:
select top 200 * from
view_OrganResource where  organid=57 and
uploadtime  <
(
    select min(uploadtime)
    from
    (
    select top 1000 uploadtime from view_OrganResource where organid=57 order by uploadtime desc
    ) a
)
order by uploadtime desc



方式三:
SELECT  ROW_NUMBER() OVER(ORDER BY orderid DESC) AS 'rnum',*
FROM view_OrganResource
WHERE 1=1 and rnum >1 and rnum < 1000


SELECT TOP 200 * FROM (SELECT
    ROW_NUMBER() OVER (ORDER BY  uploadtime desc) AS RowNumber,
    *
 FROM
    dbo.view_OrganResource) _myResults
 WHERE
    RowNumber > 1000


方式四:
SELECT * FROM (SELECT
    ROW_NUMBER() OVER (ORDER BY uploadtime desc) AS RowNumber,
    *
 FROM
    dbo.view_OrganResource) _myResults
 WHERE
    RowNumber between 1000 and 1200

go
方式五:
 WITH OrderedResults AS

 (SELECT *, ROW_NUMBER() OVER (order by uploadtime desc) as RowNumber FROM dbo.view_OrganResource)

 SELECT *

 FROM OrderedResults

WHERE RowNumber between 1001 and 1200



方式六:
BEGIN
                DECLARE @PageLowerBound int
                DECLARE @PageUpperBound int
                
                -- Set the page bounds
                SET @PageLowerBound = 1000
                SET @PageUpperBound = 1020

                -- Create a temp table to store the select results
                 Create Table #PageIndex
                 (
                     [IndexId] int IDENTITY (1, 1) NOT NULL,
                     [Id] varchar(18)
                 )
                 
                 -- Insert into the temp table
                 declare @SQL as nvarchar(4000)
                 SET @SQL = 'INSERT INTO #PageIndex (Id)'
                 SET @SQL = @SQL + ' SELECT'
                 SET @SQL = @SQL + ' TOP ' + convert(nvarchar, @PageUpperBound)
                 SET @SQL = @SQL + ' Orderid'
                 SET @SQL = @SQL + ' FROM dbo.view_OrganResource'
                 SET @SQL = @SQL + ' ORDER BY UPloadtime desc'
                 
                 -- Populate the temp table
                 exec sp_executesql @SQL

                 -- Return paged results
                 SELECT O.*
                 FROM
                     dbo.view_OrganResource O,
                     #PageIndex PageIndex
                 WHERE
                     PageIndex.IndexID > @PageLowerBound
                     AND O.Orderid= PageIndex.[Id]
                 ORDER BY
                     PageIndex.IndexID
                 
 drop table #PageIndex            
                 END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值