• SqlServer万能分页存储过程


    alter proc SP_Hangkong
    @table nvarchar(200), --表,字段,条件,
    @field nvarchar(2000)='*', --字段
    @where nvarchar(2000), --条件
    @order nvarchar(200), --排序所需要的的
    @pageSize int, --每页显示的个数
    @pageNumber int,--页数
    @Total int output
    as
    begin
    declare @strSql nvarchar(4000) --拼接字符串
    declare @strCount nvarchar(2000) --拼接用于返回的总行数
    declare @start int,@end int
    set @start = (@pageNumber-1)*@pageSize+1 --开始的页数
    set @end = @start+@pageSize - 1 --结束的页数

    set @strSql = 'select * from (select ROW_NUMBER() over(order by '+@order+') as rowId,'+@field+' from '+@table+' '+@where+') as t where (t.rowId between '+LTRIM(str(@start))+' and '+LTRIM(str(@end))+')'
    set @strCount='select @Total=count(*) from '+@table+''

    --判断条件

    if(@where is not null or @where != '')
    begin
    set @strCount=@strCount+' '+@where
    end

    --执行查询语句
    exec(@strsql) --这里没有输出参数
    print @strsql
    exec sp_executesql @strCount,N'@Total int output',@Total output
    end

  • 相关阅读:
    顺序队列的模板
    链式队列模板
    链式栈模板
    栈应用hanoi
    判断出栈顺序
    用栈实现四则运算
    两栈共享问题
    The Preliminary Contest for ICPC Asia Nanjing 2019
    Educational Codeforces Round 71 (Rated for Div. 2)
    HDU6583:Typewriter(dp+后缀自动机)
  • 原文地址:https://www.cnblogs.com/lvjingchao/p/13064212.html
Copyright © 2020-2023  润新知