首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大查询"SELECT * EXCEPT“

大查询"SELECT * EXCEPT“
EN

Stack Overflow用户
提问于 2021-08-16 20:07:45
回答 2查看 131关注 0票数 0

我正在学习如何查询bigquery (特别是结构和数组)

我有一个表,结构如下参考表:表名称:地址名称(字符串),年龄(整数,地址(记录和重复)地址中的列有: address1,address2,城市,邮政编码

问:如何选择除zipcode之外的所有列

我尝试按如下方式查询

代码语言:javascript
复制
  SELECT 
  EXCEPT(zipcode)
  FROM Address, UNNEST(address) 

上面的查询检索地址记录字段列两次。

另外,后续运行的select命令如下所示

代码语言:javascript
复制
SELECT 
Name, 
Age, 
Address
from temp

地址应包含除邮政编码以外的所有列。

EN

回答 2

Stack Overflow用户

发布于 2021-08-16 22:17:50

如果你分解了你的地址数组,你需要重新构建它。我不是SQL专家,但是下面的代码可以工作

代码语言:javascript
复制
select name, 
age, 
ARRAY_AGG(STRUCT(a.address1 as address1, a.address2 as address2, a.city as city)) as address 
from Address, unnest(address) a 
group by name, age

您不能使用* except,因为您需要按密钥分组以重建阵列agg

票数 0
EN

Stack Overflow用户

发布于 2021-08-16 22:33:47

考虑以下内容-保留所有列不变,但删除了zipcodeaddress列除外

代码语言:javascript
复制
select * except(address), 
  array(select as struct * except(zipcode) from t.address) address
from Addresses t
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68808671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档