Dividir string em várias colunas com bigquery

Eu tenho uma tabela no BigQuery com milhões de linhas e quero dividir a coluna adx_catg_id em várias novas colunas. Observe que a coluna adx_catg_id contém um número arbitrário de palavras separadas por espaço.

Este exemplo de consulta abaixo pode dividir o adx_catg_id em várias colunas se a sequência contiver apenas menos de cinco palavras. Posso estendê-lo para suportar mais número de palavras, mas preciso automatizá-lo.

SELECT
  TS, str0, str2, str4, str6, str7
  from
  (select REGEXP_EXTRACT(str5, r'^(.*) .*') as str7
  from
  (select SUBSTR (str5, LENGTH(REGEXP_EXTRACT(str5, r'^(.*) .*')) + 2, LENGTH(str5)) as str6
  from
  (select REGEXP_EXTRACT(str3, r'^(.*) .*') as str5
  from
  (select SUBSTR (str3, LENGTH(REGEXP_EXTRACT(str3, r'^(.*) .*')) + 2, LENGTH(str3)) as str4
  from
  (select REGEXP_EXTRACT(str1, r'^(.*) .*') as str3
  from
  (select SUBSTR (str1, LENGTH(REGEXP_EXTRACT(str1, r'^(.*) .*')) + 2, LENGTH(str1)) as str2
  from
  (select REGEXP_EXTRACT(TS, r'^(.*) .*') as str1
  from
  (select SUBSTR(TS, LENGTH(REGEXP_EXTRACT(TS, r'^(.*) .*')) + 2,LENGTH(TS)) as str0
  from 
  (select adx_catg_id TS from [mydataset.conversions])
  ))))))))

Como posso fazer um loop na consulta acima para gerar todas as palavras em novas colunas, dependendo do comprimento da string?

questionAnswers(2)

yourAnswerToTheQuestion