#standardSQL
SELECT
boxes,
ARRAY(
SELECT AS STRUCT
IF(colour = 'yellow', 'blue', colour) colour,
IF(colour = 'yellow', 5, id) id
FROM UNNEST(colors)
) colors
FROM `mydataset.struct_4`
Вариация выше будет
#standardSQL
SELECT
boxes,
ARRAY(
SELECT IF(colour = 'yellow',
STRUCT<colour STRING,id INT64>('blue', 5),
STRUCT(colour, id))
FROM UNNEST(colors)
) colors
FROM `mydataset.struct_4`
с тем же выводом курса
Row boxes colors.colour colors.id
1 box_1 brown 1
green 3
white 7
2 box_2 blue 5
white 4
Обновление для: но как мне обновить цвет "желтый""to" blue "и его id до 5 с помощью оператора UPDATE DML :)
#standardSQL
UPDATE `mydataset.struct_4` SET colors = ARRAY(
SELECT IF(colour = 'yellow',
STRUCT<colour STRING,id INT64>('blue', 5),
STRUCT(colour, id))
FROM UNNEST(colors)
) WHERE TRUE