在Postgres中连接多个数组

Ron*_*n M 3 postgresql

有没有办法在Postgres中将多个数组连接成一个数组?

例如,像这样:

ARRAY_CAT(
    ARRAY_FILL(5, ARRAY[4]),
    ARRAY_FILL(2, ARRAY[3]),
    ARRAY_FILL(11, ARRAY[3])
)
Run Code Online (Sandbox Code Playgroud)

对于这个例子,我想看看输出

[5,5,5,5,2,2,2,11,11,11]
Run Code Online (Sandbox Code Playgroud)

Clo*_*eto 7

使用||连接运算符

select 
    array_fill(5, array[4]) ||
    array_fill(2, array[3]) ||
    array_fill(11, array[3])
Run Code Online (Sandbox Code Playgroud)


Lap*_*csa 5

您可以通过重复串联来做到这一点:

ARRAY_CAT(
  ARRAY_CAT(
    ARRAY_FILL(5, ARRAY[4]),
    ARRAY_FILL(2, ARRAY[3])
  ),
  ARRAY_FILL(11, ARRAY[3])
)
Run Code Online (Sandbox Code Playgroud)

正如@Clodoaldo Neto 指出的,您||也可以使用该运算符。您可以从这两个中自由选择,但请记住:

  • ||根据操作数类型的不同,其行为也会有所不同。这可能会导致混乱。

  • 在两个操作数都是数组的情况下,||只是 的别名array_cat。(来源