Как выполнить массовое приведение в виде строки в BigQuery?

# #sql #casting #google-bigquery

Вопрос:

Предполагая, что в моем наборе данных есть много таблиц, которые имеют одинаковые имена столбцов, но где некоторые типы столбцов разные, например, столбец «ДЕНЬ РОЖДЕНИЯ» иногда может быть датой, а в других случаях это будет строка.

При выполнении следующего запроса я столкнусь с проблемами:

 select * from `my-project.my_dataset.table_*`
 

Это скажет мне об этом Cannot read field 'BIRTHDAY' of type STRING as DATE .

Я надеялся, что смогу сказать «просто верните все как строку», что-то в строке:

 select cast(* as string) from `my-project.my_dataset.table_*`
 

Есть ли какой-либо способ массового преобразования всех столбцов в текст, подобный этому? Я напрасно экспериментировал с парой вариантов, таких как :

 select as value cast(t as string) from `my-project.my_dataset.table_*` as t
 

Примечание: Я использую подстановочный знак, потому что (а) я на самом деле использую предложение where, чтобы сузить область действия _table_suffix , и потому что (б) это намного аккуратнее, чем десятки союзов.