试过有多种分页方法,但是都不太理想,有用Row_Number()分页的,但是一带查询条件,就不行了,现在就想要一个不是很复杂的分页存储过程,参数中我只需要传入pageIndex,pageSize,和其他查询条件,网上的那些存储过程,光看就看的眼花缭乱,有没有比较简单一点的??
select * from (
select *,ROW_NUMBER() OVER (ORDER BY CreateTime desc) AS RowNumber from TABLE
where Disabled = 0 ) as t
where RowNumber between (pageIndex-1)*pageSize +1 and (pageIndex-1)*pageSize
简单的分页,
ORDER BY CreateTime desc 是根据条件排序;
里面的where 条件
这才是正解!!我已经用跟你类似的方法实现了,并且进一步封装了一下,写了一个通用的分页存储过程,语句跟你这个类似!
简单一点的那就看你传的参数了,查询条件过不过是多加判断了,你所说的眼花缭乱是你没下功夫自己试着去写,就查看别人现成的,关键是查看别人的你得去分析啊,一看内容多然后就觉得特别复杂了,这种学习方式不会得到很大的提高!
xi现在分页还啥存储过程
百度下 2012sql分页语法
其实只要知道分页的规律就行了,也可以不用存储过程 ,不过涉及到子查询
传入2个参数 当前的页数,每页显示的数
select top (每页显示的数) * from student where id
not in (select top (当前的页数-1) * 每页显示的数 id from student )
and 条件......
你这个方法是可以,但是前面的几页会很快,越到后面越慢,还是用row_number()要科学一些 只需要扫描一次表,而且做好索引也是很重要的,不然排序需要花很多时间.