不知道我理解得对不对,比如表中有100条记录,你想取其中的第50-60条记录select top 10 * from (select top 60 * from 表名 ) a order by id desc10=60-50,id为数据表中的排序字段.

解决方案 »

  1.   

    select top 10 * from tablename order by newid()
      

  2.   

    select top 10 * from (select top 60 * from 表名 ) a order by id desc这个不对,要是不是10的整数倍的记录,出来的数据会是乱的.还是这个方法select top 10 * from tablename order by id
      

  3.   

    exec('select top '+@number+' * from tablename order by newid()')
      

  4.   

    先取得表中的所有记录数,假如total = 100,假如你要取30-40条的话
    total = 100
    num = 30
    n = 10'这里要判断total-num的值是否 >= n
    select top n * from (select top total - num * from 表名 order by id desc) a order by id desc
      

  5.   

    Select top 10 * from tablename order by newid()
    随机取10条记录
      

  6.   

    select top 10 * from tablename order by ??
    ?? 是整個表按??排序 的前10條記錄
      

  7.   

    Select top 10 * from tablename order by newid()
    就是随机读十天数据的。楼主可以自己测试下,每次读出的十条数据不一致的。newid()会每次随机生成ID的。
      

  8.   

    试 试用游标:
    ---定义游标
      declare cursor_name   cursor 
      for select  tpo 10 * 
      from tablename  --既然是随机就不用order by id desc了
    ----打开游标
       open cursor_name
    --执行第一次操作
       fetch next from   cursor
    --检查@@fetch——status以确定是否可以继续取数
      while  @@fetch_status=0
      begin
      fetch next from cursor
      end
    --关闭游标
      close cursor
    --释放游标
      deallocate cursor
      

  9.   

    LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 
    的方法是对的啊!!!应该可以实现!