Вам нужно перестраивать структуру на каждом уровне. Вот пример некоторых примеров данных:
SELECT
* REPLACE(
(SELECT AS STRUCT user.* REPLACE (
(SELECT AS STRUCT user.name.* EXCEPT (first, last),
user.name.first AS firstName,
user.name.last AS lastName
) AS name)
) AS user)
FROM (
SELECT
STRUCT(
STRUCT('elliott' AS first, '???' AS middle, 'brossard' AS last) AS name,
'Software Engineer' AS occupation
) AS user
)
Идея состоит в том, чтобы заменить структуру user
новой структурой, в которой name
имеет требуемый тип структуры с использованием синтаксиса вложенной замены / конструкции struct.