Вы не можете CAST повторять поле / Массив в массив другого типа
Таким образом, преобразование ARRAY<STRUCT<unit_price STRING>>
в ARRAY<STRUCT<unit_price FLOAT64>>
не будет работать
Я думаю, то, что вы делаете сейчас, это путь!
Примечание: если бы вы изменили название предмета с unit_price
на, скажем, item_price
- ниже простое приведение будет работать
#standardSQL
SELECT CAST(items AS ARRAY<STRUCT<item_price STRING>>) items
FROM `project.dataset.orders`