有办法获得结构的元素类型吗?例如,类似于:
SELECT #TYPE(structField.y)
SELECT #TYPE(structField)
...etc可以这样做吗?我能找到的最接近的方法是通过查询编辑器和它为验证查询而进行的web调用:

发布于 2022-04-28 23:04:57
正如我在备注中已经提到的-其中一个选项是模仿相同的非常模拟运行调用与查询构建的方式,它将失败与准确的错误信息,将给您的信息,您正在寻找。显然,这假设您的用例可以用您喜欢的任何脚本语言实现。应该是相对容易做的。
同时,我希望在SQL查询中实现这一点。
下面是另一个选项的示例。
它仅限于以下类型,which might fit or not into your particular用例
object, array, string, number, boolean, null 所以例子是
select
s.birthdate, json_type(to_json(s.birthdate)),
s.country, json_type(to_json(s.country)),
s.age, json_type(to_json(s.age)),
s.weight, json_type(to_json(s.weight)),
s.is_this, json_type(to_json(s.is_this)),
from (
select struct(date '2022-01-01' as birthdate, 'UA' as country, 1 as age, 2.5 as weight, true as is_this) s
) 带输出

发布于 2022-04-26 23:59:15
您可以尝试以下方法。
SELECT COLUMN_NAME, DATA_TYPE
FROM `your-project.your-dataset.INFORMATION_SCHEMA.COLUMNS`
WHERE TABLE_NAME = 'your-table-name'
AND COLUMN_NAME = 'your-struct-column-name'
ORDER BY ORDINAL_POSITION您可以使用INFORMATION_SCHEMA for BigQuery查看此BigQuery的更多细节。
下面是我测试的截图。
数据:

使用上述语法的结果:

https://stackoverflow.com/questions/72018218
复制相似问题