如何用select语句取数据的第20条到第30条记录

解决方案 »

  1.   

    你应该有特定的排序的吧
    如果是任意查询里的20到30条纪录
    可以这样
    select * from (select a.*,rownum rn from  表 a) where rn between 20 and 30
      

  2.   

    如果是有条件的查询,则把WHERE写上去
    比如
    select * from 
    (select a.*,rownum rn from 表名 a
    where 条件
    ) where rn between 20 and 30
      

  3.   

    select * from table where rownum>=20 and rownum<30;
      

  4.   

    select * from table where rownum<=30 
    minus
    select * from talbe where rownum<=20
      

  5.   

    爱新觉罗错了,如果不排序的话lexchi是对的!
      

  6.   

    http://hexun.com/vbagcl/default.html个人日记里
      

  7.   

    要看你需要返回的数据是希望是固定的还是只要满足条件即可/如果不需要是固定的可以用rownum,rownum返回的值是读取的位置和数据是未定的(可能是data file,可能是data buffer cache),这一次rownum返回的数据不一定下次就一样,这是oracle本身的行为而且我们不能决定.如果需要的是固定的数据(每次返回相同),我们需要使用rowid精确定位到行.
      

  8.   

    标准答案运行过的:
    select   X.*   from     
      (select   rownum   row_num,A.*   from   tablename   A   )   X   where   X.row_num>=20  and     
      X.row_num<=30
      

  9.   

    SELECT TOP 10 ID FROM AA NOT IN(SELECT TOP 10 ID FROM AA)