select top 1000 * from abc where 1=1 and id not in (select top 10000 id from abc where 1=1 order by id desc) order by id desc 
SELECT * FROM abc where ID IN (SELECT TOP 11000 id FROM abc where 1=1 order by id desc) AND ID NOT IN (SELECT TOP 10000 id FROM abc where 1=1 order by id desc)

解决方案 »

  1.   

    select fields from (select fields,rownum as r from tablename) 
    where r >=minvalue and r<=maxvalue
      

  2.   

    JSP数据库数据分页显示 统一教学网
    日期:2001-11-27 9:26:31
    出处:- 
    作者:何志强[[email protected]
     
    <%--  
    功能:JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle  
    --%>  <%@ page contentType=\"text/html;charset=8859_1\" %&g 
    t;  <%  
    //变量声明  
    java.sql.Connection sqlCon; //数据库连接对象  
    java.sql.Statement sqlStmt; //SQL语句对象  
    java.sql.ResultSet sqlRst; //结果集对象  java.lang.String strCon;  //数据库连接字符串  
    java.lang.String strSQL;  //SQL语句  int intPageSize;      //一页显示的记录数  
    int intRowCount;      //记录总数  
    int intPageCount;     //总页数  
    int intPage;        //待显示页码  
    java.lang.String strPage;  int i;  //设置一页显示的记录数  
    intPageSize = 2;  //取得待显示页码  
    strPage = request.getParameter(\"page\");  
    if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据  
      intPage = 1;  
    }  
    else{//将字符串转换成整型  
      intPage = java.lang.Integer.parseInt(strPage);  
      if(intPage<1) intPage = 1;  
    }  //装载JDBC驱动程序  
    java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());  //设置数据库连接字符串  
    strCon = \"jdbc:oracle:thin:@linux:1521:ora4cweb\";  //连接数据库  
    sqlCon = java.sql.DriverManager.getConnection(strCon,\"hzq\",\"hzq\");  //创建一个可以滚动的只读的SQL语句对象  
    sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);  //准备SQL语句  
    strSQL = \"select name,age from test\";  //执行SQL语句并获取结果集  
    sqlRst = sqlStmt.executeQuery(strSQL);  //获取记录总数  
    sqlRst.last();  
    intRowCount = sqlRst.getRow();  //记算总页数  
    intPageCount = (intRowCount+intPageSize-1) / intPageSize;  //调整待显示的页码  
    if(intPage>intPageCount) intPage = intPageCount;  
    %>  <html>  
    <head>  
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">  
    <title>JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle</title>  
    </head>  <body>  <table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">  
    <tr>  
      <th>姓名</th>  
      <th>年龄</th>  
    </tr>  <%  
    if(intPageCount>0){  
      //将记录指针定位到待显示页的第一条记录上  
      sqlRst.absolute((intPage-1) * intPageSize + 1);    //显示数据  
      i = 0;  
      while(i<intPageSize && !sqlRst.isAfterLast()){  
       %>  
    <tr>  
      <td><%=sqlRst.getString(1)%></td>  
      <td><%=sqlRst.getString(2)%></td>  
    </tr>  
       <%  
       sqlRst.next();  
       i++;  
      }  
    }  
    %>  </table>  第<%=intPage%>页  共<%=intPageCount%>页  <%if(intPage<intPageCount){%><a href=\"jdbc20-oracle.jsp?page=<%=intPage+1%>\">下一页</a><%}%>  <%if(intPage>1){%><a href=\"jdbc20-oracle.jsp?page=<%=intPage-1%>\">上一页</a><%}%>  </body>  
    </html>  <%  
    //关闭结果集  
    sqlRst.close();  //关闭SQL语句对象  
    sqlStmt.close();  //关闭数据库  
    sqlCon.close(); 
     
      

  3.   

    请问
    1是不是每次看下一页都要重新查询一次sqlRst?
    2下面的语句时什么时候执行,是用户的什么动作使其执行还是自动执行?//关闭结果集  
    sqlRst.close();  //关闭SQL语句对象  
    sqlStmt.close();  //关闭数据库  
    sqlCon.close();
      

  4.   

    stevene(冰城绝恋)你提供的分页程序我有,但是里面的sqlRst.last();  和sqlRst.isAfterLast()方法sql7.0的jdbc不支持啊!
      

  5.   

    你看看我的程序片段吧:
      //以下代码用来滚动记录集到当前页的第一条纪录
      int recNum,pageNum,PN,total;//recNum--总记录数,pageNum---当前页数,PN---每页显示记录数,total---总页数
      PN=5;//每页显示记录数
      if(request.getParameter("page")==null) pageNum=1;
      else if(request.getParameter("page").equals("")) pageNum=1;
      else pageNum=Integer.parseInt(request.getParameter("page"));
      recNum=lyaq.getRecNum();
      if(rs!=null){
        //定位到当前页的第一条记录的前面一条,
        for(int i=0;(i<(PN*(pageNum-1)))&&(i<recNum)&&(rs.next());i++)
        System.out.println(i);
      }
      if(recNum%PN==0) total=recNum/PN;
      else total=recNum/PN+1;  //以下代码用来输出记录集内容到表格
      int i=0;
      while(rs.next()&&i<PN){
        //....输出表格内容
        i++;
      }  //以下代码放于表格的最后一行,用来翻页:
      <td colspan=6> <div align="right"> <a onMouseMove="this.style.cursor='hand';" onClick="document.form1.action='lyaq_cxjg.jsp';form1.submit();">首页</a>
      <%if(pageNum<=1){
      %>
      <a> 上一页</a>
      <%
       }
       else{
      %>
      <a onMouseMove="this.style.cursor='hand';" onClick = "document.form1.action = 'lyaq_cxjg.jsp?page=<%=pageNum-1%>';form1.submit();">上一页</a>
      <%
      }
       if(total<=pageNum){
      %>
      <a> 下一页</a>
      <%
      }
      else{
      %>
       <a onMouseMove="this.style.cursor='hand';" onClick = "document.form1.action = 'lyaq_cxjg.jsp?page=<%=pageNum+1%>';form1.submit();">下一页</a>
      <%
       }
      %>
      <a onMouseMove="this.style.cursor='hand';"  onClick = "document.form1.action ='lyaq_cxjg.jsp?page=<%=total%>';form1.submit();">尾页</a> </div></td>
      

  6.   

    忘了说明了:
      recNum=lyaq.getRecNum();//这句话是用来获得总记录数,你应该把=号右边的代码替换掉,自己执行一个类似于“select count(*) from table_name ”的sql语句,然后把查出来的记录总数赋给recNum
      还有就是<a onMouseMove="this.style.cursor='hand';" onClick = "document.form1.action = 'lyaq_cxjg.jsp?page=<%=pageNum+1%>';form1.submit();">下一页</a>这里面的lyan_cxjg.jsp你应该替换成自己的页面名字
      

  7.   

    我最近写了一个struts里的分页,很好喔!!可惜对你没用....
      

  8.   

    可以用Hashtable来做
    第一次
    先把search出来的数据的主关键字按页放到Hashtable中
    再把这个Hashtable放到session中然后每一页可以从这个session中Hashtable取
      

  9.   

    分页最好用sql语句来完成,如果数据量特别庞大的话,先全部取出再分页的效率会很低,所以建议你用sql语句来完成分页
      

  10.   

    数据量不多用sql分页也不麻烦啊?
    其实sql分页很方便,而直接在jsp里面分页,得考虑很多的问题
      

  11.   

    最好的还是弄一个session的bean,很多地方有这个方法的介绍!