Después de investigar en diversos repositorios y páginas de internet finalmente hemos descubierto la respuesta que te mostraremos más adelante.
Solución:
Para unos pocos registros, podría usar:
update records
set name = case id
when 1 then 'def'
when 3 then 'abc'
end
where id in (1, 3)
Un poco más flexible es crear un resultado que pueda unirse a la actualización:
update r
set name = x.name
from records r
inner join (
select id = 1, name = 'abc' union all
select 3, 'def' union all
select 4, 'qwe' union all
select 6, 'rty'
) x on x.id = r.id
Simplemente puede combinar una actualización con una declaración de caso como
UPDATE records
SET name =
CASE
WHEN id = 3 THEN 'abc'
WHEN id = 1 THEN 'def'
ELSE name
END
;WITH vals(id, name)
AS (SELECT 3,'abc'
UNION ALL
SELECT 1,'def')
UPDATE r
SET name = vals.name
FROM records r
JOIN vals
ON vals.id = r.id
Puntuaciones y comentarios
Si crees que ha sido de utilidad nuestro post, nos gustaría que lo compartas con el resto programadores así nos ayudas a difundir esta información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)