多字段排序 分页 存储过程

由于现在大部分 分页存储过程都支持有个排序字段。所以如果要是多字段排序分页的话就没法用了。所以自己写了个很实用的,但是估计效率不是很高,尤其是分页那部分
 
注意:由于时间问题,已经把表写死了。排序条件也写死了。如果有需要的话可以提成变量(表要动态提字段)
 
  1. create proc BListPage
    @Filter varchar(500),
    @indexPage int,
    @PageSize int
    as
  2. declare @strsql varchar(8000)
    declare @strStartRow varchar(100)
    declare @strendRow varchar(100)
  3. /*设置搜索条件*/
    if(@Filter <> '')
    Set @strsql =   '  where  ' + @Filter
  4. /*起始行号*/
    SET @strStartRow = CAST(((@indexPage - 1)*@PageSize+1) AS varchar(100))
  5. /*结束行号*/
    SET @strendRow = CAST((@indexPage *@PageSize ) AS varchar(100))
  6. exec('
    declare @tempTable table(tid  int identity(1,1) ,
     id int  ,
     Title varchar(1000)   ,
     SecondTitle varchar(1000)  ,
     Url varchar(1000)  ,
     ContentHtml ntext   ,
     Click int  ,
     isExpire int,
     CountryID int  ,
     LastDate datetime,
     SignName varchar(50) ,
     SignDate datetime  ,
     LastUpdater varchar (50),
     LastUpdate datetime,
     GroupType  char(10),
     SchoolName varchar(50)  ,
     MeetingID int  ,
     AllMeeting varchar(100) 
  7. )
  8. insert @tempTable(
    id,
     Title,
     SecondTitle,
     Url,
     ContentHtml,
     Click,
     isExpire,
     CountryID,
     LastDate,
     SignName,
     SignDate,
     LastUpdater,
     LastUpdate,
     GroupType,
     SchoolName,
     MeetingID,
     AllMeeting
  9. )   select *  from  web_Bulletin  '
    + @strsql +
    ' order by  lastdate asc
  10. select * from  @tempTable where tid >= '+@strStartRow+' and tid <= '+@strendRow+' ')
  11. GO

 

 

  1. drop proc  BListPage
  2. BListPage '',2,10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值