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

    ALTER procedure [dbo].[fenye]
    @pagesize int, --每页显示数量
    @pageCurrent int, --当前页
    @tablename varchar(20), --表名
    @field varchar(20), --显示的列名(eg: id,name)
    @where varchar(20), --筛选条件 (eg: name not null)
    @orderBy varchar(20), --排序的列名(eg: id 或者 id desc)
    @count int output --返回总共有多少页,0 为不要返回 1 位

    as
    begin
    declare @strSql nvarchar(200)
    declare @starNum int
    declare @endNum int
    set @starNum =(@pageCurrent -1)* @pagesize
    set @endNum =@pageCurrent * @pagesize
    --declare @timediff datetime

    --set nocount on --不返回计数(表示受Transact-SQL 语句影响的行数)。
    --select @timediff=getdate() --记录时间

    if @count !=0
    begin
    if @where = ''
    set @strSql ='select @count=count(*) from '+@tablename
    else
    set @strSql ='select @count=count(*) from '+@tablename+' where '+@where
    end
    exec sp_executesql @strSql,N'@count int output,@tablename varchar(20),@where varchar(20)',@count output,@tablename,@where


    if @pageCurrent =1
    if @where = ''
    set @strSql ='select top '+cast(@pagesize as varchar)+' '+@field+' from '+@tablename+' order by '+@orderBy+''
    else
    set @strSql ='select top '+cast(@pagesize as varchar)+' '+@field+' from '+@tablename+' where '+@where+' order by '+@orderBy+''
    else
    if @where !=''
    set @strSql='select '+@field+' from (select '+@field+',row_number() over(order by '+@orderBy+') rn from '+@tablename+' where '+@where+')a where rn<='+CONVERT(varchar,@endNum)+' and rn>'+cast(@starNum as varchar)+''
    else
    set @strSql='select '+@field+' from (select '+@field+',row_number() over(order by '+@orderBy+') rn from '+@tablename+')a where rn<='+CONVERT(varchar,@endNum)+' and rn>'+cast(@starNum as varchar)+''

    exec(@strSql)

    --select datediff(ms,@timediff,getdate()) as 耗时
    --set nocount off --返回计数(默认为OFF)。
    end

    declare @count int
    set @count=1
    exec fenye 3,3,cj,'*','fenshu is not null','id',@count output
    select @count

  • 相关阅读:
    常见的概念
    cas底层
    判断页面是否读取了缓存
    window.location.hash(hash应用)---跳转到hash值制定的具体页面
    * 输入框被第三方输入法遮挡问题
    Mui去掉滚动条:
    实用网址
    完美解决safari、微信浏览器下拉回弹效果。
    移动端兼容性问题解决方案
    监听ios自带返回功能
  • 原文地址:https://www.cnblogs.com/enamorbreeze/p/6964157.html
Copyright © 2011-2022 走看看