代码之家  ›  专栏  ›  技术社区  ›  john

BigQuery:从数组创建表

  •  0
  • john  · 技术社区  · 6 年前

    我想用两个不同数组中的两列创建一个表。

    阵列2:[11,12,13]

    必选表:

    two columns, 3 rows

    通过使用这个查询,我得到了一行

    SELECT 
    [1,2,3] AS S1,
    [11,12,13] AS S2
    

    1 row, 2 columns

    SELECT S1, S2
    FROM 
    UNNEST([1,2,3]) AS S1,
    UNNEST([11,12,13]) AS S2
    

    2 columns, 9 rows - cartesian product

    如何从数组创建必需的表(pic 1)?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   Gordon Linoff    6 年前

    一个方法使用连接和 WITH OFFSET :

    SELECT S1, S2, o1, o2
    FROM UNNEST([1, 2, 3]) s1 WITH OFFSET o1 LEFT JOIN
         UNNEST([11, 12, 13]) S2 WITH OFFSET o2
         ON o1 = o2;
    

    如果能 UNNEST()