SQL语句:
select * from (select col, rownum rowcount from table where rownum<=20) where rowcount>=10;

解决方案 »

  1.   

    rowcount是啥:
    是列还是oracle里的特殊列
    这里有一个通用的: (只要是按id索引的 )
    select * from TABLENAME p where 
    10 < (select count(*) from TABLENAME where TABLENAME.id > p.id) and 
    21 > (select count(*) from TABLENAME where TABLENAME.id > p.id) 
      

  2.   

    rowcount是自己定义的rownum的别名
      

  3.   

    实际上这个问题的关键就是不要有所谓的 rownum 列.
    当然有的话可以直接一些.
      

  4.   

    不依赖具体的数据库不太可能吧,不同数据库有不同数据库的特点,我上面说的是Oracle的!
      

  5.   

    当然可以不依赖于具体的数据库.
    只要有索引就行.
    就像上面的sql语句
      

  6.   

    select * from TABLENAME p where 
    10 < (select count(*) from TABLENAME where TABLENAME.id > p.id) and 
    21 > (select count(*) from TABLENAME where TABLENAME.id > p.id) 这个语句只不知道效率如何?
      

  7.   

    没有order by排序,两次选择会出现不一样的结果吗?