Wyjaśniając przez przykład:Czy można zaktualizować wiersze z pary klucz/wartość?
UPDATE Table SET value=(22,55,99) WHERE id IN (2,5,9)
Więc wiersz z id=2
, value
jest ustawiony na 22
. Wiersz z id=5
, value
jest ustawiony na 55
. Itp
Wyjaśniając przez przykład:Czy można zaktualizować wiersze z pary klucz/wartość?
UPDATE Table SET value=(22,55,99) WHERE id IN (2,5,9)
Więc wiersz z id=2
, value
jest ustawiony na 22
. Wiersz z id=5
, value
jest ustawiony na 55
. Itp
Można użyć tabeli pochodzącą:
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
Dla mnie jest to najbardziej elegancki sposób to zrobić i to jest również łatwo EXTANDABLE (możesz dodać więcej kolumn, jeśli chcesz)
Tak, ale nie tak jak trzeba:
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)
Jeśli musisz to zrobić dla dużej liczby klatek/zapisów, byłbyś lepiej po prostu wydając kilka dedykowanych update
zapytaniami .
użycie wyrażenia CASE
wybrał wartość aktualizacji:
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)