sql >> Databasteknik >  >> RDS >> Sqlserver

En uppdatering med flera villkor. SQL 2008

Du kan ta reda på vilken användare som har högst prioritet genom att använda row_number() . SQL Server låter dig göra detta i en uppdateringsbar CTE, så frågan ser ut så här:

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. Oracle UpdateXML() ändrar XML-struktur?

  2. Hur kan jag få cx-oracle att binda resultaten av en fråga till en ordbok snarare än en tuppel?

  3. En tråd hängdes på java.net.SocketInputStream.socketRead0(Native Method), någon som vet vad som hände?

  4. Vill du veta mer om NTILE()