比如说,第一次查询前20条记录,第二次查询后20条记录,而不是把所有的记录一下都select出来,sqlserver2000下怎么实现?(想在JSP分页时用)

解决方案 »

  1.   

    使用top关键字 如 select top 20 就是前20条,反复使用Order by排序
      

  2.   

    顶一楼的,用TOP关键字,简洁而有效!而游标虽然实用,却要有声明  打开 提取数据 关闭 几个步骤例如按姓名 和地主查询Students表中前20条记录,则  SELECT TOP 20 SName,SAddress FROM Students WHERE SSex=0(此时0代表性别),另外,如果有其他要求,则可加上排序   ORDER BY   ASC DESC等
      

  3.   

    需要用到一个页数的变量如p,如果需要更可以加一个页面显示的数量如psizesql = "select top "+ psize + "* from (select top "+ p*psize +" from table order by id desc)a order by id asc";PS:别少了a...
      

  4.   

    一个最简单的分页存储过程,你先看看吧!create proc p_pagelist
    @pagesize int,      ---显示多少行,
    @pagecurrent int,   ----显示第几页,
    @name varchar(10)    ----查询条件,自己扩展
    as
    begin
    declare @id1 varchar(20)
    declare @id2 varchar(20)
    declare @sql varchar(1000)   ----这个变量存你的查询语句。 select @id1=convert(varchar(20),@pagesize)   -----将int 转换为varchar类型的
    select @id2=convert(varchar(20),(@pagecurrent-1)*@pagesize) select @sql='
    SELECT top '+@id1+' * FROM [dbo.订单]
    where dbo.订单.客户ID='''+@name+''' and dbo.订单.订单ID not in
    (
    SELECT top '+@id2+' dbo.订单.订单ID 
    FROM [dbo.订单]
    where dbo.订单.客户ID='''+@name+'''
    order by dbo.订单.订单ID
    )
    order by dbo.订单.订单ID'
    end
    exec(@sql)exec p_pagelist '5','1','JuJu'---测试
      

  5.   

    可以把一个查询结果集做为一个表这是个很有用的方法
    a 就是那个select语句返回的结果集 今天刚整理了些常用的东东http://blog.csdn.net/sunyujia/archive/2008/05/14/2446543.aspx