zoukankan      html  css  js  c++  java
  • 分页存储过程

    CREATE   PROCEDURE   [dbo].[getPage]
    @pageSize int,              --页尺寸
    @currentPage int,           --当前页
    @tableFields varchar(2000), --返回的字段
    @tableName   varchar(200),  --表名
    @orderString varchar(1000), --排序字符串
    @whereString varchar(1000), --条件字符串
    @IsReCount   bit = 0        -- 返回记录总数, 非 0 值则返回
    AS
    BEGIN

    if   @currentPage   <   1   set   @currentPage   =   1

    DECLARE   @strSql   varchar(2000)
    DECLARE   @strOrder varchar(2000)
    DECLARE   @strWhere varchar(2000)

    set   @strOrder   =   REPLACE(RTRIM(LTRIM(@orderString)), 'order   By ', ' ')
    if   @strOrder   !=   ''  set   @strOrder   =   '   order   By   '   +   @strOrder

    set   @strWhere   =   REPLACE(RTRIM(LTRIM(@whereString)), 'where ', ' ')
    if   @strWhere   !=   ''
         set   @strWhere   =   '   where   '   +   @strWhere
    else
         set   @strWhere   =   '   where  1=1  '  

    if   @pageSize   =   0
        set   @strSql   =   'select   '   +   @tableFields   +   '   from   '   +   @tableName   +   @strWhere   +   @strOrder
    else
        if   @currentPage   =   1
            set   @strSql   =   'select   top( '   +   Str(@pageSize)   +   ')   '   +   @tableFields   +   '   from   '   +   @tableName   +   @strWhere   +   @strOrder
        else
            begin
            set   @strSql   =   'select   top( '   +   Str(@pageSize)   +   ')   *   from   (select   top( '   +   Str(@pageSize   *   @currentPage)   +   ')   '   +   @tableFields   +   ',   ROW_NUMBER()   OVER   ( '
            set   @strSql   =   @strSql   +   @strOrder
            set   @strSql   =   @strSql   +   ')   As   RowNumber   From   '   +   @tableName
            set   @strSql   =   @strSql   +   @strWhere
            set   @strSql   =   @strSql   +   ')   as   t   where   t.RowNumber   >   '   +   Str(@pageSize   *   (@currentPage   -   1))
            set   @strSql   =   @strSql   +   @strOrder
            end

    if @IsReCount != 0
        set @strSql = 'select count(*) as Total from [' + @tableName + ']  ' + @strWhere

    exec(@strSql)
    END

  • 相关阅读:
    【转】突破区块链不可能三角:异步共识组 [Monoxide]
    [转]王嘉平:Monoxide 原理详解,如何用极简架构突破不可能三角
    【转】区块链公链的 3 大性能难点、5 大体验障碍
    使用ShowDoc在线管理API接口文档
    云和恩墨大讲堂电子刊2019年4月刊发布
    墙裂推荐 | 漫画解读Elasticsearch原理,看完你就懂
    DBASK数据库提问平台问题集萃,首批近二十位专家团曝光
    WIN10安装GPU版tensorflow
    cobbler的网页操作
    cobbler的网页操作
  • 原文地址:https://www.cnblogs.com/yuqi2008/p/1575880.html
Copyright © 2011-2022 走看看