Google bigquery 大查询错误?影响名称间距的反勾号

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执行操作时

所以我在BigQuery上有一个表,`our project name.ads.Geo`,它包含一个
Geo.CountryCode

使用“我们的项目名称”时,使用SELECT
Geo.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
运行相同的查询,您可以看到它不会命中缓存,因此查询引擎会将它们视为不同的输入。