隐式创建结构体

问题描述 投票:0回答:1

在以下查询中:

select t, 1 from (select 1 as a, 2 as b) t

它为列

{"a": 1, "b": 2}
生成一个结构类型为
t
的列。这是预期的行为吗?如果是这样(我几乎 100% 肯定是这样),BigQuery 或 SQL 标准中记录的该行为在哪里?

另一个例子:

select t as x, t.*, 1 as y from (select 1 as a, 2 as b) t

sql google-bigquery google-cloud-spanner
1个回答
0
投票

这绝对是 BigQuery 中的预期行为。虽然文档可能不会显示与您的示例完全相同的示例,但基本概念完全一致。我使用 BigQuery 的示例结构运行了您的查询并得到了相同的结果。

查询1:

WITH t AS (select 1 as a, 2 as b)
SELECT t, 1 FROM t;

查询2:

WITH t AS (select 1 as a, 2 as b)
SELECT t as x, t.*, 1 as y FROM t;

在一些相关帖子中也观察到了同样的情况。

© www.soinside.com 2019 - 2024. All rights reserved.