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
  • 相关阅读:
    《Effective Java 第三版》——第五章 泛型
    线性代数在数据科学中的十个强大应用(一)
    ​知识图谱里的知识存储:neo4j的介绍和使用
    一份从入门到精通NLP的完整指南 | NLPer
    NeurIPS审稿引发吐槽大会,落选者把荒唐意见怼了个遍:“我谢谢你们了”
    知识图谱与机器学习|KG入门 -- Part2 建立知识图谱
    知识图谱与机器学习 | KG入门 -- Part1-b 图深度学习
    ​知识图谱与机器学习 | KG入门 -- Part1 Data Fabric
    使用特定领域的文档构建知识图谱 | 教程
    ICCV 2019|70 篇论文抢先读,含目标检测/自动驾驶/GCN/等(提供PDF下载)
  • 原文地址:https://www.cnblogs.com/zsy/p/311234.html
Copyright © 2011-2022 走看看