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

  • 相关阅读:
    微信小程序开发入门(六)
    JS计算日期加上指定天数得到新的日期
    Java中substring()
    List集合去除重复数据
    按钮倒计时
    jQuery中each方法
    Math三个函数
    jQuery表单提交
    jQuery 序列化表单数据
    正则取小数点后面几位
  • 原文地址:https://www.cnblogs.com/yuqi2008/p/1575880.html
Copyright © 2011-2022 走看看