zoukankan      html  css  js  c++  java
  • SQL Server 存储过程进行分页查询

    CREATE PROCEDURE prcPageResult -- 获得某一页的数据 --
    @currPage INT = 1 , --当前页页码 (即Top currPage)
    @showColumn VARCHAR(2000) = '*' , --需要得到的字段 (即 column1,column2,......)
    @tabName VARCHAR(2000) , --需要查看的表名 (即 from table_name)
    @strCondition VARCHAR(2000) = '' , --查询条件 (即 where condition......) 不用加where关键字
    @ascColumn VARCHAR(100) = '' , --排序的字段名 (即 order by column asc/desc)
    @bitOrderType BIT = 0 , --排序的类型 (0为升序,1为降序)
    @pkColumn VARCHAR(50) = '' , --主键名称
    @pageSize INT = 20 --分页大小
    AS
    BEGIN -- 存储过程开始 -- 该存储过程需要用到的几个变量 --
    DECLARE @strTemp VARCHAR(1000)
    DECLARE @strSql VARCHAR(4000) --该存储过程最后执行的语句
    DECLARE @strOrderType VARCHAR(1000) --排序类型语句 (order by column asc或者order by column desc)
    BEGIN
    IF @bitOrderType = 1 -- bitOrderType=1即执行降序
    BEGIN
    SET @strOrderType = ' ORDER BY ' + @ascColumn + ' DESC'
    SET @strTemp = '<(SELECT min'
    END
    ELSE
    BEGIN
    SET @strOrderType = ' ORDER BY ' + @ascColumn + ' ASC'
    SET @strTemp = '>(SELECT max'
    END
    IF @currPage = 1 -- 如果是第一页
    BEGIN
    IF @strCondition != ''
    SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
    + @showColumn + ' FROM ' + @tabName + ' WHERE '
    + @strCondition + @strOrderType
    ELSE
    SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
    + @showColumn + ' FROM ' + @tabName
    + @strOrderType

    END
    ELSE -- 其他页
    BEGIN

    IF @strCondition != ''
    SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
    + @showColumn + ' FROM ' + @tabName + ' WHERE '
    + @strCondition + ' AND ' + @pkColumn + @strTemp
    + '(' + @pkColumn + ')' + ' FROM (SELECT TOP '
    + STR(( @currPage - 1 ) * @pageSize) + ' '
    + @pkColumn + ' FROM ' + @tabName + @strOrderType
    + ') AS TabTemp)' + @strOrderType
    ELSE
    SET @strSql = 'SELECT TOP ' + STR(@pageSize) + ' '
    + @showColumn + ' FROM ' + @tabName + ' WHERE '
    + @pkColumn + @strTemp + '(' + @pkColumn + ')'
    + ' FROM (SELECT TOP ' + STR(( @currPage - 1 )
    * @pageSize) + ' '
    + @pkColumn + ' FROM ' + @tabName + @strOrderType
    + ') AS TabTemp)' + @strOrderType
    END
    END
    EXEC (@strSql)
    END


    EXEC prcPageResult 2,'*','outpr_register','state=1','inputtime',1,'registerid',3

  • 相关阅读:
    【RF库Built-In测试】Catenate
    SpringMVC系列(十四)Spring MVC的运行流程
    SpringMVC系列(十三)异常处理
    SpringMVC系列(十二)自定义拦截器
    SpringMVC系列(十一)把后台返回的数据转换成json、文件下载、文件上传
    SpringMVC系列(十)<mvc:default-servlet-handler/>(处理静态资源)和<mvc:annotation-driven />
    SpringMVC系列(九)自定义视图、重定向、转发
    SpringMVC系列(八)国际化
    SpringMVC系列(七)视图解析器和视图
    SpringMVC系列(六)处理模型数据
  • 原文地址:https://www.cnblogs.com/dogxuefeng/p/4613596.html
Copyright © 2011-2022 走看看