Google bigquery 大查询错误?影响名称间距的反勾号
所以我在BigQuery上有一个表,`our project name.ads.Geo`,它包含一个Google bigquery 大查询错误?影响名称间距的反勾号,google-bigquery,Google Bigquery,所以我在BigQuery上有一个表,`our project name.ads.Geo`,它包含一个Geo.CountryCode列 使用“我们的项目名称”时,使用SELECTGeo.CountryCode失败。“ads”。“Geo”由于列和表之间的命名冲突,但使用“我们的项目名称.ads.Geo”时不会出现此问题。难道这些不意味着语义上是等价的吗 谢谢 是的,关于BigQuery生成的数据,这里有一个小小的语义差异 当您从'proj`.'ds`.'tbl`或从'proj.ds.tbl执行操作时
Geo.CountryCode
列
使用“我们的项目名称”时,使用SELECTGeo.CountryCode
失败。“ads”。“Geo”由于列和表之间的命名冲突,但使用“我们的项目名称.ads.Geo”时不会出现此问题。难道这些不意味着语义上是等价的吗
谢谢 是的,关于BigQuery生成的数据,这里有一个小小的语义差异 当您从'proj`.'ds`.'tbl`或从'proj.ds.tbl执行
操作时,该表的别名为tbl
。当您从'proj.ds.tbl`
执行操作时,该表的别名为proj.ds.tbl
正如您所发现的,如果标识符的第一部分与表别名匹配,它将解析为表别名而不是字段名。但是,如果在后面的勾号中包含全名,则别名不同,不会导致冲突。但是,您可以使用全名作为别名:
select `tmp.Foo`.Foo.Baz FROM `tmp.Foo`;
select Foo.Foo.Baz FROM tmp.Foo;
不确定它是否有用,但如果对project.dataset.table
和project
dataset
table
运行相同的查询,您可以看到它不会命中缓存,因此查询引擎会将它们视为不同的输入。