大查询中列的结构值
Struct values to columns in big query
我有一列“设备”,每一行都有结构值
设备
(第 1 行)
brand_name
brand_id
country
huawei
34j0
china
(第 2 行)
brand_name
brand_id
country
sony
ds5g
japan
我们可以通过这样做从这些结构创建列
SELECT
device.brand_name
device.brand_id
device.country
from table
在这种情况下,结构只有三个值(brand_name、brand_id、国家/地区)但是如果结构有 n 个值怎么办,所以我想做的是而不是访问每个值value in struct by devicedevice.brand_name,device.brand_id...etc ,我想循环其中的所有值并将其作为一列,有没有办法做到这一点? , 谢谢
您可以只使用通配符 *
。更具体地说:
WITH devices as (
SELECT STRUCT("sony" as brand_name, "ds5g" as brand_id, "japan" as country) as device UNION ALL
SELECT STRUCT("huawei" as brand_name, "34j0" as brand_id, "china" as country) as device
)
SELECT device.* FROM devices
我有一列“设备”,每一行都有结构值
设备
(第 1 行)
brand_name | brand_id | country |
---|---|---|
huawei | 34j0 | china |
(第 2 行)
brand_name | brand_id | country |
---|---|---|
sony | ds5g | japan |
我们可以通过这样做从这些结构创建列
SELECT
device.brand_name
device.brand_id
device.country
from table
在这种情况下,结构只有三个值(brand_name、brand_id、国家/地区)但是如果结构有 n 个值怎么办,所以我想做的是而不是访问每个值value in struct by devicedevice.brand_name,device.brand_id...etc ,我想循环其中的所有值并将其作为一列,有没有办法做到这一点? , 谢谢
您可以只使用通配符 *
。更具体地说:
WITH devices as (
SELECT STRUCT("sony" as brand_name, "ds5g" as brand_id, "japan" as country) as device UNION ALL
SELECT STRUCT("huawei" as brand_name, "34j0" as brand_id, "china" as country) as device
)
SELECT device.* FROM devices