在以下查询中:
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
这绝对是 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;
在一些相关帖子中也观察到了同样的情况。