0

嗨,我正在使用 Sybase 16。

每当我运行此 CTE 时,它都会给我一个错误:“更新附近的语法错误”...

With Remove_Dup_Nov13(pk_viewing_prog_instance_fact, Rank_instance) As (Select pk_viewing_prog_instance_fact, row_number()over(partition by dk_programme_instance_dim, subscriber_id, account_number, instance_start_date_time_utc, instance_end_date_time_utc, instance_duration order by dk_programme_instance_dim, subscriber_id, account_number, instance_start_date_time_utc, instance_end_date_time_utc, instance_duration) rank_instance From Viewing_Cribs_Nov13 ) Update Viewing_Cribs_Nov13 Set a.Rank_instance = b.Rank_instance from Viewing_Cribs_Nov13 as a inner join Remove_Dup_Nov13 as b on a.pk_viewing_prog_instance_fact = b.pk_viewing_prog_instance_fact;

请建议。

4

1 回答 1

0

您将要更新的列设置为别名,而不是要更新的表:

Update Viewing_Cribs_Nov13
Set Rank_instance = b.Rank_instance
from Viewing_Cribs_Nov13 as a
inner join
Remove_Dup_Nov13 as b
on a.pk_viewing_prog_instance_fact = b.pk_viewing_prog_instance_fact;

或者

Update a
Set Rank_instance = b.Rank_instance
from Viewing_Cribs_Nov13 as a
inner join
Remove_Dup_Nov13 as b
on a.pk_viewing_prog_instance_fact = b.pk_viewing_prog_instance_fact;
于 2014-06-22T00:09:29.287 回答