首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bigquery结构反思

Bigquery结构反思
EN

Stack Overflow用户
提问于 2022-04-26 17:34:40
回答 2查看 108关注 0票数 0

有办法获得结构的元素类型吗?例如,类似于:

代码语言:javascript
复制
SELECT #TYPE(structField.y)
SELECT #TYPE(structField)
...etc

可以这样做吗?我能找到的最接近的方法是通过查询编辑器和它为验证查询而进行的web调用:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-28 23:04:57

正如我在备注中已经提到的-其中一个选项是模仿相同的非常模拟运行调用与查询构建的方式,它将失败与准确的错误信息,将给您的信息,您正在寻找。显然,这假设您的用例可以用您喜欢的任何脚本语言实现。应该是相对容易做的。

同时,我希望在SQL查询中实现这一点。

下面是另一个选项的示例。

它仅限于以下类型,which might fit or not into your particular用例

代码语言:javascript
复制
object, array, string, number, boolean, null    

所以例子是

代码语言:javascript
复制
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
)        

带输出

票数 1
EN

Stack Overflow用户

发布于 2022-04-26 23:59:15

您可以尝试以下方法。

代码语言:javascript
复制
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的更多细节。

下面是我测试的截图。

数据:

使用上述语法的结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72018218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档