在Postgres中连接多个数组

时间:2017-08-18 19:51:45

标签: postgresql

有没有办法在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]

2 个答案:

答案 0 :(得分:5)

使用|| concatenation operator

finallist = [url for url in urllist if not any(re.search(r, url) for r in ignorelist)]

答案 1 :(得分: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