dense_rank() 的关键字 'where' 附近的语法不正确

Incorrect syntax near the keyword 'where' for dense_rank()

select * from (select e.*, dense_rank() over (order by salary desc) as rk from employee e) 
where rk>=5

我遇到语法错误

Incorrect syntax near the keyword 'where'.

有什么问题?

试试这个:

select * from (select e.*, 
                      dense_rank() over (order by salary desc) as rk 
               from employee e
               ) tmp  --alias to from subquery
where tmp.rk>=5

希望对您有所帮助!