2017-08-18 37 views
0

有沒有辦法在Postgres中連接多個數組到一個數組?在Postgres中連接多個數組

例如,這樣的事情:

ARRAY_CAT(
    ARRAY_FILL(5, ARRAY[4]), 
    ARRAY_FILL(2, ARRAY[3]), 
    ARRAY_FILL(11, ARRAY[3]) 
) 

對於這個例子,我想看到的

[5,5,5,5,2,2,2,11,11,11] 

回答

3

使用|| concatenation operator

select 
    array_fill(5, array[4]) || 
    array_fill(2, array[3]) || 
    array_fill(11, array[3]) 
+0

就像一個魅力。謝謝! –

0

可以反覆級聯做到這一點的輸出:

ARRAY_CAT(
    ARRAY_CAT(
    ARRAY_FILL(5, ARRAY[4]), 
    ARRAY_FILL(2, ARRAY[3]) 
), 
    ARRAY_FILL(11, ARRAY[3]) 
) 

正如@Clodoaldo Neto指出的,您也可以使用||運算符。可以從以下兩個可自由選擇,但要記住:

  • ||可以表現不同,這取決於操作數的類型。這可能會導致混淆。

  • 在兩個操作數都是數組的情況下,||只是array_cat的別名。 (source