Невозможно использовать CAST AS RECORD при SELECT - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть простая таблица с 2 столбцами: Col1 и Col2

sh-3.2# ./bq show --schema dataset.Test
[{"type":"STRING","name":"Col1","mode":"NULLABLE"},{"type":"STRING","name":"Col2","mode":"NULLABLE"}]

Этот запрос работает нормально

SELECT * EXCEPT (Col2) , CAST(Col2 AS NUMERIC) AS Col2 FROM `project.dataset.Test` LIMIT 1000

Этот запрос возвращает ошибку

SELECT * EXCEPT (Col2) , CAST(Col2 AS RECORD) AS Col2 FROM `project.dataset.Test` LIMIT 1000

Есть идеи почему?

Я пытаюсь использовать ключевое слово RECORD, как оно появилось в WebUI

enter image description here

1 Ответ

0 голосов
/ 26 февраля 2019

Правила преобразования BigQuery не позволяют преобразовывать строку в запись (AKA Struct).

https://cloud.google.com/bigquery/docs/reference/standard-sql/conversion_rules

Вы должны составить структуру самостоятельно в своем запросе.Как то так:

SELECT 
    * EXCEPT (Col2), 
    STRUCT( Col2 as inner_Col2) as my_inner_record 
FROM `project.dataset.Test` LIMIT 1000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...