在 SQL 中展平数组

Posted

技术标签:

【中文标题】在 SQL 中展平数组【英文标题】:Flattening an array in SQL 【发布时间】:2018-03-03 01:30:50 【问题描述】:

我正在尝试展平这个数组,以便每个邻居都有自己的列。

当我不知道数组中的元素时,如何编写一个允许我展平该数组的查询?

SELECT deviceid,
       neighbors
FROM
      `etl.routing_table_nodes`
WHERE
       Parent = 'QMI-YSK'

目前的结果如下:

Row deviceid    neighbors    
1    OHX-ZSI    DMR-RLE  
                WMI-YEK  
2    OHX-ZFI    DMR-RLE  
                QMI-YSK  

Bigquery screenshot

【问题讨论】:

您可以为表添加架构吗? neighbors 是嵌套列吗? 【参考方案1】:

试试

SELECT
    deviceid, unnested_neighbors
FROM 
    `etl.routing_table_nodes` table,
    UNNEST(table.neighbors) as unnested_neighbors
WHERE
    unnested_neighbors = 'QMI-YSK'

【讨论】:

以上是关于在 SQL 中展平数组的主要内容,如果未能解决你的问题,请参考以下文章