2015-11-10 2 views

Antwort

14

können Sie abgeleitete Tabelle verwenden:

update t set 
    value = a.value 
from Table as t 
    inner join (values 
     (22, 2), 
     (55, 5), 
     (99, 9) 
    ) as a(id, value) on a.id = t.id 

Für mich die eleganteste Art und Weise, dies zu tun und es ist auch leicht erweiterbar (Sie können weitere Spalten hinzufügen, wenn Sie möchten)

1

Ja, aber nicht wie Sie haben:

UPDATE Table 
SET value=case when id=2 then 22 when id=5 then 55 when id=9 then 99 end 
WHERE id in (2,5,9) 

Wenn Sie dies für eine große Anzahl von Feldern/Datensätze zu tun haben, dann würden Sie besser dran, nur ein paar gewidmet update Abfragen Ausgabe .

0

Verwenden Sie einen CASE Ausdruck Aktualisierungswert zu wählen:

UPDATE Table SET value = case id when 2 then 22 
           when 5 then 55 
           when 9 then 99 
         end 
WHERE id IN (2,5,9) 
Verwandte Themen