row_number()
を使用して、どのユーザーが最も優先度が高いかを把握できます。 . SQL Server では更新可能な CTE でこれを行うことができるため、クエリは次のようになります。
with toupdate as ( select t.*, row_number() over (partition by projectid order by (case when userid = 1 then 1 when userid = 2 then 2 when userid = 3 then 3 else 4 end ) ) as PriorityForLead from table t ) update toupdate set RoleId = 11 where PriorityForLead = 1;
プレ>