update a set value =
(select substr(b.value,instr(b.value,'@')+1) value
from
(select c.id,(c.value||'@'||(select value from a where id = 2)) value
union
select d.id,(d.value||'@'||(select value from a where id = 1)) value
from a d where d.id = 2
union
select e.id,e.value from a e where e.id not in (1,2)
) b where b.id = a.id)
/