根据某一指定的sql语句(例如select * from users)返回的结果集中,我只要第20行到40行的数据
sql怎么写?
注:前面指定的sql语句是不可预见的,可能是其他的,总之是变化的

解决方案 »

  1.   

    select top 21 * from (select * from user desc) a
      

  2.   

    select top 21 * from (select top 40 * from user desc) a
      

  3.   

    lz是想实现分页效果吧。SELECT * FROM
         (
         SELECT TOP(20) * FROM
         (
              SELECT TOP (20) *
              FROM table
              ORDER BY aa DESC
         )
         ORDER BY aa ASC
    )
    ORDER BY aa DESC 试试,我以前在ACCESS里边分页就是这样分的。
      

  4.   

    不好意思上边写错了一个地反
    SELECT * FROM
         (
         SELECT TOP(20) * FROM
         (
              SELECT TOP (40) *
              FROM table
              ORDER BY aa DESC
         )
         ORDER BY aa ASC
    )
    ORDER BY aa DESC 
    在查询中是40才对。呵呵
      

  5.   

     select top 2 * from 表 where prod_id > (select max(prod_id) from (select top 2 * from 表) as a )
      

  6.   


    select top 21 * from 结果集 
    where id not in (
    select top 20 id from 结果集)
      

  7.   


    Oracle中用rownum>21 order by XX
      

  8.   

    如果是2008的可以用LINQ来实现skip(20).take(20)
    用之前先判断一下你的数据的总数。不要超过了。