sql >> Database teknologi >  >> RDS >> Sqlserver

En opdatering med flere betingelser. SQL 2008

Du kan finde ud af, hvilken bruger der har den højeste prioritet ved at bruge row_number() . SQL Server lader dig gøre dette i en opdaterbar CTE, så forespørgslen ser sådan ud:

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;



  1. Slet alle rækker og behold seneste x tilbage

  2. Vælg en sekvens mellem to tal på MySQL

  3. Mysql for langsom ved simpel forespørgsel mellem to tabeller

  4. Hvordan opretter jeg forbindelse til en MySQL-database i Python?