zoukankan      html  css  js  c++  java
  • 数据库分页存储过程(3)

    /*
    ******************************************************************************************
      存储过程名称:Common_Pagination
      存储过程功能:通用分页存储过程
      操 作 说 明 :
            
      设 计 时 间 :2004年11月01日
      代码设计者  :小朱(zsy619@163.com)
    ******************************************************************************************
      功能描述:

    ******************************************************************************************
      如果您修改了我的程序,请留下修改记录,以便对程序进行维护,谢谢  !!!
    ==========================================================================================
      修改人   修改时间    修改原因
    ------------------------------------------------------------------------------------------

    ==========================================================================================
    ******************************************************************************************
      备注:

    ******************************************************************************************
    */

    CREATE PROCEDURE [dbo].[Common_Pagination]
         
    @SQL          varchar(8000),        --TSQL语句
         @PageCurr         int,            --第几页
         @PageSize     int,                --PageSize
         @ID         varchar(255),            --关键字
         @Sort         varchar(255),            --排序字段
         @desc         bit = 0,            --升序/降序
        @pageCount int output
    AS
        
        
    declare @Str varchar(8000)

        
    if (@desc = 1)
            
    set @Str = 'SELECT TOP ' + CAST(@PageSize as varchar(20)) 
                 
    + ' * FROM (' + @SQL + ') T WHERE T.' + @ID + ' NOT IN (SELECT TOP '
                 
    + cast((@PageSize*(@PageCurr-1)) as varchar(20)) + ' '
                 
    + @ID + ' FROM (' + @SQL + ') T2  ORDER BY ' + @Sort + ' DESC) ORDER BY '
                 
    + @Sort
        
    else
            
    set @Str = 'SELECT TOP ' + CAST(@PageSize as varchar(20)) + ' * FROM ('
                 
    + @SQL + ') T WHERE T.' + @ID + ' NOT IN (SELECT TOP '
                 
    + cast((@PageSize*(@PageCurr-1)) as varchar(20)) + ' ' + @ID + ' FROM (' 
                 
    + @SQL + ') T2  ORDER BY ' + @Sort + ' ASC) ORDER BY ' + @Sort
        
        
    if (@desc = 1)
            
    set @str = @str + ' DESC'
        
    else
            
    set @str = @str + ' ASC'


        
    exec(@Str)
        
    select @Str='select '+@Sort+' from ('+@sql+') t'
        
    exec(@str)
        
    select @pageCount=@@rowcount
    GO
  • 相关阅读:
    Java实现 蓝桥杯VIP 基础练习 完美的代价
    Java实现 蓝桥杯VIP基础练习 矩形面积交
    Java实现 蓝桥杯VIP 基础练习 完美的代价
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    核心思想:想清楚自己创业的目的(如果你没有自信提供一种更好的产品或服务,那就别做了,比如IM 电商 搜索)
    在Linux中如何利用backtrace信息解决问题
  • 原文地址:https://www.cnblogs.com/zsy/p/311234.html
Copyright © 2011-2022 走看看