在 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 中展平数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure 流分析中展平嵌套的 json 数据

对表格多数组的环回响应/将对象的嵌套数组展平为线性数组

在javascript中展平数组[重复]

如何在一维数组中“展平”或“索引”3维数组?

如何在javascript中展平嵌套数组? [复制]

如何在 PHP 中展平数组?