在oracle中有一个Rownum是在where里面,可以用来提取指定的行集范围
如:select * from Tablename where 条件A
     (返回的数据大于200个记录的话)
  select * from Tablename where 条件A and rownum>100 and rownum<200
     那么它返回的结果集是从第101后的连继99个记录我知道在mssql2000中的top 或percent 的方法,但都无法完成oracle中的功能
不知有哪位高手能告我在mssql2000中的解决办法。
其一:
有一个效率不高的做法是:写一个函数或存储过程,用游标去实现,
但我认为这样数据库处理效率不高其二:
不能在数据表上加上一个所谓的标识列,有标识列的办法去做我的Email:[email protected]

解决方案 »

  1.   

    select Top 99 * from (select top 199 * from table order by Field desc) order by Field
      

  2.   

    if (select count(*) from Tablename where 条件A)>200
    select * from Tablename where 条件A and rownum>100 and rownum<200
    else
     ...
    这样?
      

  3.   

    不能用rownum 看来只能由楼上的楼上所说了
      

  4.   

    同意meiqingsong(阿飛)
    select Top 99 * from (select top 199 * from table order by Field desc) order by Field