gpt4 book ai didi

google-bigquery - 我可以在表名中使用查询参数吗?

转载 作者:行者123 更新时间:2023-12-04 21:31:08 24 4
gpt4 key购买 nike

我想按照以下方式做一些事情:

SELECT some_things
FROM `myproject.mydataset.mytable_@suffix`

但这是行不通的,因为该参数未在表名内扩展。

确实可以使用 wildcard tables:
SELECT some_things
FROM `myproject.mydataset.mytable_*`
WHERE _TABLE_SUFFIX = @suffix

但是,它存在一些问题:
  • 如果我输入了错误的参数,此查询将默默地返回零行,而不是大声地对我大喊大叫。
  • 使用通配符查询时,查询缓存将停止工作。
  • 如果存在其他带有mytable_前缀的表,则即使它们与后缀不匹配,它们也必须具有相同的架构。否则,会发生奇怪的事情。看来BigQuery要么计算所有列的并集,要么采用任意表的模式;它没有记录,我也没有详细研究。

  • 有没有更好的方法来查询名称取决于查询参数的单个表?

    最佳答案

    为了回答您陈述的问题:

  • 表扫描发生在FROM子句中,在WHERE子句中发生过滤[1],因此,如果WHERE条件不匹配,将返回空结果。
  • “当前,使用通配符查询时不支持缓存结果” [2]。
  • “BigQuery将该模式用于与通配符匹配的最新创建的表作为模式” [3]。您在用例中会遇到什么样的怪异事物? “通配符表表示与通配符表达式匹配的所有表的并集” [4]。

  • 在BigQuery中,可以运行参数化查询,但是不能对表名进行参数化[ 5]。通配符解决方案似乎是唯一的方法。

    关于google-bigquery - 我可以在表名中使用查询参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51475252/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com