I think it will be obvious to see what I\'m trying to do through this simplified example (works in PostgreSQL)....
with a as
(
select 1 as id, 123.456 as val
You can transform you update statement into below
#standardSQL
UPDATE
`project.dataset.mytable` mytable
SET value = new_value
FROM (
WITH a AS
(
SELECT 1 AS id, 123.456 AS value
)
SELECT a1.id a1_id, a2.id a2_id,
COALESCE(a1.value, a2.value) new_value
FROM
a AS a1,
a AS a2
)
WHERE
a1_id = mytable.id
OR
a2_id = mytable.id2