微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐