PostgreSQL array_cat() 函数使用指南

PostgreSQL array_cat() 函数将两个指定的数组连接为一个数组并返回连接后的数组。

array_cat() 语法

这里是 PostgreSQL array_cat() 函数的语法:

array_cat(array1, array2) -> array

参数

array1
必需的。 一个要连接的数组。
array2
必需的。 另一个要连接的数组。

返回值

PostgreSQL array_cat() 函数返回一个数组,她是两个数组的连接结果。

要连接的两个数组应具备相同的数据类型,否则 array_cat() 函数将会给出一个错误提示。

如果其中一个参数为 NULLarray_cat() 函数将返回另一个不为 NULL 的数组。

如果两个参数都为 NULLarray_cat() 函数将返回 NULL

array_cat() 示例

本示例展示了如何使用 PostgreSQL array_cat() 函数将数组 {0,1,2} 和数组 {3,4,5} 连接为一个数组。

SELECT array_cat(ARRAY[0, 1, 2], ARRAY[3, 4, 5]);
   array_cat
---------------
 {0,1,2,3,4,5}

您同样可以使用 array_cat() 函数连接两个字符串数组:

SELECT
    array_cat(
        ARRAY['zero', 'one', 'two'],
        ARRAY['three', 'four', 'five']
    );
           array_cat
--------------------------------
 {zero,one,two,three,four,five}

如果其中一个参数为 NULLarray_cat() 函数将返回另一个不为 NULL 的数组。例如:

SELECT
    array_cat(ARRAY[0, 1, 2], NULL),
    array_cat(NULL, ARRAY[3, 4, 5]);
 array_cat | array_cat
-----------+-----------
 {0,1,2}   | {3,4,5}

您不能连接两个数据类型不同的数组。比如,您不能将一个整形的数组和一个字符串数组连接起来,就像下面一样:

SELECT
    array_cat(
        ARRAY[0, 1, 2],
        ARRAY['three', 'four', 'five']
    );

array_cat() 函数会返回一个错误:

错误:  函数 array_cat(integer[], text[]) 不存在
第2行    array_cat(
         ^
提示:  没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.