如果在第一页面显示1-10条记录,翻到第二页以后显示11-20条记录,第三野显示21-30,依次类推,请问SQL语句如何写才能只选择1-10条,11-20条,20-30等等?

解决方案 »

  1.   

    select top 10*N from...
      

  2.   

    select top "+pageNum*pb.getRowsPerPage()+"* frompageNum:当前是第几页,pb.getRowsPerPage(),每页显示的条数  pb就是PaginationBean对象public class PaginationBean{
    private int curPage=1;
    private int maxPage;
    private int maxRowCount;
    private int rowsPerPage=10;
    public  java.util.Vector data;
    public void setMaxPage(int maxPage){
    this.maxPage=maxPage;
    }
    public void setcurPage(int curPage){
    this.curPage=curPage;
    }
    public void setMaxRowCount(int maxRowCount){
    this.maxRowCount=maxRowCount;
    }
    public void setRowsPerPage(int rowsPerPage){
    this.rowsPerPage=rowsPerPage;
    }
    public int getMaxPage(){
    return this.maxPage;
    }
    public int getCurPage() {
    return this.curPage;
    }
    public int getMaxRowCount(){
    return this.maxRowCount;
    }
    public int getRowsPerPage(){
    return this.rowsPerPage;
    }
    }
      

  3.   

    google 搜索分页 一大把
    给你推荐个链接,我一般用这个做分页(和数据库没关系);
    http://blog.csdn.net/Jerry_BJ/archive/2010/06/02/5642447.aspx
      

  4.   


    select * from (     select row_number() over ( order by tempColumn) tempRowNumber,*     from ( select top 2359296 tempColumn= 0,* from table order by id) t ) tt where tempRowNumber> 2359286 
    sql2005的分页 ,速度 提高快的LZ参考下。
      

  5.   

    SQL 是 top 
    oracle 是 rownum
    mySQL不知道
      

  6.   

    select top 10 from  tt  where id not in (select top start id from  tt )
      

  7.   

    我想知道 你是用的什么数据库  因为sqlserver mysql oracle分页都是不同的
      

  8.   

    mySql 使用 limit(?,?)前一个问号是从第几个开始取,后一个是具体取几个
      

  9.   

    MySQL Oracle MSSQL 分页都不一样,
    不过Google一下很多答案反正我用Hibernate。。
      

  10.   

    sqlServer:
    select top(10) * from 表名 where id not in (select top((页-1)*10) id from 表名mysql:
    select * from 表名 limit (页-1)*10,10
      

  11.   

    select * from
    (select t1.*,rownum rn from (select * from emp) t1 where rownum<=10) 
    where rn>=1;
      

  12.   

    效率最高的查法declare @PageNo  int  --当前页,@PageSize int  --每页显示条数 
    set @PageNo   =2 set @PageSize =10 
    if @PageNo = 1 
    begin 
    select top(@PageSize) * from talbe 
    end 
    else begin 
    select top(@PageSize) *from talbe where table.id> 
    (select max(id) from 
    (select top ((@PageNo-1) * @PageSize) * from table  order by table) T )  order by id 
      

  13.   

    如果数据量很大就不要再页面分页,直接数据库里分页了。看楼主用什么数据库了,不同的数据库方法不同的,oracle用rownum直接指定哪条到哪条,sqlserver2008好像也支持这个函数,但是之前的top似乎解决不了分页的问题,mysql的话就不知道了,上网google吧
      

  14.   

    oracle用rownum,sqlserver用top,mysql用limit
      

  15.   

    这里以自动增长的id字段为主键。
    查询10到20条记录:
    sql server:
    select top 10 * from user where id in (select top 20 id from user order by id) order by id descmysql:select * from user order by id limit 10,21        (21是不包含本身的)oracle:select * from (select rownum num,* from user where num<=20) where num>10
      

  16.   

    不同的数据库不同的sql写法的,不过都不太难,网上很多例子