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
Cette requête n'est pas exécutée, lance,
Msg 207, niveau 16, état 1, ligne 2 Nom de colonne non valide 'stl_key'.
Je ne pouvais pas comprendre quel est le problème. Aidez-moi, s'il vous plaît!
Vous ne pouvez pas utiliser le ROW_NUMBER directement – vous devez l'empackageer dans une expression de table commune comme ceci:
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
Marc
d'une autre manière, bien que je préférerais 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
vous ne pouvez pas utiliser le champ d'alias dans la clause where. Cela devrait fonctionner:
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