zoukankan      html  css  js  c++  java
  • SQL TOP分页法

    原理:

    PageSize, PageIndex;

    升序   order  by  a asc

    a的 值 大于, 上一页数据 最大的  a值。

    降序  order by  a desc

    a的 值 小于, 上一页数据 最小的  a值。

    代码实例

    USE [SZSQ]
    GO
    /****** Object: StoredProcedure [dbo].[dnt_gettopiclistbytypedatecph] Script Date: 09/12/2014 15:18:56 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    alter PROCEDURE [dbo].[dnt_PageSplb]
    @pagesize int,
    @pageindex int,
    @startnum int,
    @condition varchar(1000),
    @orderby varchar(100),
    @ascdesc int
    AS

    DECLARE @strsql varchar(5000)
    DECLARE @sorttype varchar(5)

    IF @ascdesc=0
    SET @sorttype='ASC'
    ELSE
    SET @sorttype='DESC'

    IF @pageindex = 1
    BEGIN
    SET @strsql = 'SELECT TOP ' + STR(@pagesize) +' [sid],[sname],[sauthor],[sdate],[simg],[slink],[spjs],[slbdl],[slbps],[slbgjw],[slbql],[slbjs],[sbfcs],[splcs],[szdcs],[scdcs],[ssfsx]
    from [dnt_splb] where [ssfsx]=1'+@condition+' ORDER BY '+@orderby+' '+@sorttype
    END
    ELSE
    IF @sorttype='DESC'
    BEGIN
    SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [sid],[sname],[sauthor],[sdate],[simg],[slink],[spjs],[slbdl],[slbps],[slbgjw],[slbql],[slbjs],[sbfcs],[splcs],[szdcs],[scdcs],[ssfsx]
    FROM [dnt_splb]
    WHERE dnt_splb.['+@orderby+'] < (SELECT min(tblTmp.['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' [dnt_splb].['+@orderby+'] FROM [dnt_splb] WHERE [ssfsx]=1'+@condition+' ORDER BY [dnt_splb].'+@orderby+' '+@sorttype+')AS tblTmp )
    AND [ssfsx]=1
    ORDER BY [dnt_splb].'+@orderby+' '+@sorttype
    END
    ELSE
    BEGIN
    SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [sid],[sname],[sauthor],[sdate],[simg],[slink],[spjs],[slbdl],[slbps],[slbgjw],[slbql],[slbjs],[sbfcs],[splcs],[szdcs],[scdcs],[ssfsx]
    FROM [dnt_splb]
    WHERE dnt_splb.['+@orderby+'] > (SELECT min(tblTmp.['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' [dnt_splb].['+@orderby+'] FROM [dnt_splb] WHERE [ssfsx]=1'+@condition+' ORDER BY [dnt_splb].'+@orderby+' '+@sorttype+')AS tblTmp )
    AND [ssfsx]=1
    ORDER BY [dnt_splb].'+@orderby+' '+@sorttype
    END
    print @strSQL
    EXEC(@strsql)

  • 相关阅读:
    express获取post传参数据:body-parser使用详解
    设置 -webkit-app-region 后无法响应鼠标点击事件的解决方式
    微信小程序动画效果
    【转】线程及同步的性能
    【转】线程及同步的性能
    Shell命令_smem
    Redis集群(九):Redis Sharding集群Redis节点主从切换后客户端自动重新连接
    Redis集群(八):Redis Sharding集群
    Java并发_volatile实现可见性但不保证原子性
    Java_jvisualvm使用JMX连接远程机器(实践)
  • 原文地址:https://www.cnblogs.com/sunzhenyong/p/3974245.html
Copyright © 2011-2022 走看看