select * from (select rownum as r,t.* from   
                            (select emp.* from emp order by hiredate desc) t where rownum<=10)  
                                      where r>5;
谁能不这句话转化为sql server中可以运行的sql语句

解决方案 »

  1.   

    试试这个:
    SELECT  *
    FROM    ( SELECT    rownum AS r ,
                        t.*
              FROM      ( SELECT    emp.*,ROW_NUMBER()OVER(ORDER BY GETDATE()) AS rownum
                          FROM      emp
                          ORDER BY  hiredate DESC
                        ) t
              WHERE     rownum <= 10
            )
    WHERE   r > 5;
      

  2.   

    试试 这个 oracle 和 sql server 应该都是支持的
    select * FROM  emp order by hiredate desc OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;
      

  3.   

    其实你就是想实现sqlsever 中的 rownumber 功能
      

  4.   

    为什么不需要验证码了,害我提前发了
    ----------实现rownum
    SELECT *, ROW_NUMBER() OVER(ORDER BY ID ASC) ------实现rownumber---------相同值字段分组显示rownum
    ROW_NUMBER() OVER(partition by ttid ORDER BY ttid ASC) as rownum