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
此查询未执行,抛出,
Msg 207,Level 16,State 1,Line 2 列名称'stl_key'无效。
我无法理解这是什么问题。请帮帮我!
答案 0 :(得分: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
马克
答案 1 :(得分:1)
另一种方式虽然我更喜欢CTE
select * from (select
sp_una_stl_key,
row_number()
over(order by sp_una_stl_key)as stl_key
from
t_unit_data_archive) x
where
stl_key>=10
答案 2 :(得分:1)
您不能在where子句中使用别名字段。这应该有效:
select * from
(select sp_una_stl_key, row_number() over(order by sp_una_stl_key)as stl_key
from t_unit_data_archive) a
where stl_key>=10