【问题标题】:Unnest arrays of different dimensions不同维度的未嵌套数组
【发布时间】:2014-09-28 20:33:35
【问题描述】:

是否有一个函数或查询可以将不同维度的数组作为一个集合返回?例如,我想返回值

ARRAY[1]
ARRAY[2,3]
ARRAY[4,5,6]

作为

1
2
3
4
5
6

【问题讨论】:

    标签: sql arrays postgresql unnest set-returning-functions


    【解决方案1】:

    使用unnest():

    SELECT unnest(arr) AS elem
    FROM (
     VALUES
       (ARRAY[1])
      ,(ARRAY[2,3])
      ,(ARRAY[4,5,6])
      ) t (arr);
    

    按要求返回。
    更多详情:

    【讨论】:

    • 请注意,不能保证结果的顺序,但实际上它是一致的。你需要 9.4 的 WITH ORDINALITY 来保证它。
    • @CraigRinger:我添加了一个链接来详细说明。
    【解决方案2】:

    尝试以下查询

    select unnest(a) from
    (select array[1] as arr union select array[2,3]
    union select array[4,5,6]) t
    

    希望这可能会有所帮助:) ..

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      相关资源
      最近更新 更多