sql server 2005中sql语句:
select Row_Number() Over(order by id) as rownum, *  
from table
能否将rownum作为where查询条件使用,比如where rownum=10,来查找
如何可以,sql应该怎么写才对啊,多谢了 

解决方案 »

  1.   

    ;with cte
    as
    (select Row_Number() Over(order by id) as rownum, *  
    from table )
    select *
    from cte 
    where rownum = 10
      

  2.   

    CTE(Common Table Expression,一般表表达式),是一个临时的执行结果,生命周期只在于该批处理的执行期间。
      

  3.   

    select * from 
    (select Row_Number() Over(order by id) as rownum, * 
    from table) a
    where rownum=10 
      

  4.   

    当然不可以的
    楼主有必要理解一个事实:列的别名是不可以做where 条件 .
    因为执行查询逻辑顺序时候 简单来说是 先FROM 再WHERE 然后SELECT 最后ORDER 
    所以也解释了 order by 是可以用rownum