SQLServer中的Row_Number()

Par*_*tha 3 sql-server

select 
   sp_una_stl_key, 
   row_number() over(order by sp_una_stl_key)as stl_key 
from        
    t_unit_data_archive
where 
    stl_key>=10
Run Code Online (Sandbox Code Playgroud)

此查询未执行,抛出,

消息207,级别16,状态1,行2无效的列名称'stl_key'.

我无法理解这是什么问题.请帮我!

mar*_*c_s 8

你不能直接使用ROW_NUMBER - 你需要将它打包在Common Table Expression中,如下所示:

with CTE as
(
  select 
     sp_una_stl_key, row_number() over(order by sp_una_stl_key) as stl_key 
  from 
     t_unit_data_archive
)
select *
from CTE
where stl_key >= 10
Run Code Online (Sandbox Code Playgroud)