sql >> Databasteknik >  >> RDS >> Sqlserver

Är det möjligt att utföra flera uppdateringar med en enda UPDATE SQL-sats?

Du kan använda ett påstående och ett antal fallbeskrivningar

update tbl
  set title = 
    case
      when title in ('a-1', 'a.1') then 'a1'
      when title in ('b-1', 'b.1') then 'b1'
      else title
    end

Naturligtvis kommer detta att orsaka en skrivning på varje post, och med index kan det vara ett problem, så du kan filtrera bort endast de rader du vill ändra:

update tbl
  set title = 
    case
      when title in ('a-1', 'a.1') then 'a1'
      when title in ('b-1', 'b.1') then 'b1'
      else title
    end
where
  title in ('a.1', 'b.1', 'a-1', 'b-1')

Det kommer att minska antalet skrivningar till tabellen.



  1. Finns/finns inte:'välj 1' kontra 'välj fält'

  2. Hur skapar jag en Oracle-tabell med kapslade tabeller med objekttyper?

  3. PostgreSQL SKAPA TABELL

  4. Hur current_timestamp() fungerar i PostgreSQL