云数据库 GaussDB-数组函数和操作符:数组函数

时间:2023-11-01 16:18:33

数组函数

  • array_append(anyarray, anyelement)

    描述:向数组末尾添加元素,只支持一维数组。

    返回类型:anyarray

    示例:

    12345
    gaussdb=# SELECT array_append(ARRAY[1,2], 3) AS RESULT; result  --------- {1,2,3}(1 row)
  • array_prepend(anyelement, anyarray)

    描述:向数组开头添加元素,只支持一维数组。

    返回类型:anyarray

    示例:

    12345
    gaussdb=# SELECT array_prepend(1, ARRAY[2,3]) AS RESULT; result  --------- {1,2,3}(1 row)
  • array_cat(anyarray, anyarray)

    描述:连接两个数组,支持多维数组。

    返回类型:anyarray

    示例:

     1 2 3 4 5 6 7 8 91011
    gaussdb=# SELECT array_cat(ARRAY[1,2,3], ARRAY[4,5]) AS RESULT;   result    ------------- {1,2,3,4,5}(1 row)gaussdb=# SELECT array_cat(ARRAY[[1,2],[4,5]], ARRAY[6,7]) AS RESULT;       result        --------------------- {{1,2},{4,5},{6,7}}(1 row)
  • array_ndims(anyarray)

    描述:返回数组的维数。

    返回类型:int

    示例:

    12345
    gaussdb=# SELECT array_ndims(ARRAY[[1,2,3], [4,5,6]]) AS RESULT; result --------      2(1 row)
  • array_dims(anyarray)

    描述:返回数组各个维度中的低位下标值和高位下标值。

    返回类型:text

    示例:

    12345
    gaussdb=# SELECT array_dims(ARRAY[[1,2,3], [4,5,6]]) AS RESULT;   result   ------------ [1:2][1:3](1 row)
  • array_length(anyarray, int)

    描述:返回指定数组维度的长度。int为指定数组维度。

    返回类型:int

    示例:

     1 2 3 4 5 6 7 8 91011
    gaussdb=# SELECT array_length(array[1,2,3], 1) AS RESULT; result --------      3(1 row)gaussdb=# SELECT array_length(array[[1,2,3],[4,5,6]], 2) AS RESULT; result--------      3(1 row)
  • array_lower(anyarray, int)

    描述:返回指定数组维数的下界。int为指定数组维度。

    返回类型:int

    示例:

    12345
    gaussdb=# SELECT array_lower('[0:2]={1,2,3}'::int[], 1) AS RESULT; result --------      0(1 row)
  • array_upper(anyarray, int)

    描述:返回指定数组维数的上界。int为指定数组维度。

    返回类型:int

    示例:

    12345
    gaussdb=# SELECT array_upper(ARRAY[1,8,3,7], 1) AS RESULT; result --------      4(1 row)
  • array_upper(anyarray, int)

    描述:返回指定数组维数的上界。int为指定数组维度。

    返回类型:int

    示例:

    gaussdb=# SELECT array_upper(ARRAY[1,8,3,7], 1) AS RESULT; result --------      4(1 row)
  • array_to_string(anyarray, text [, text])

    描述:使用第一个text作为数组的新分隔符,使用第二个text替换数组值为null的值。

    返回类型:text

    示例:

    12345
    gaussdb=# SELECT array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*') AS RESULT;  result   ----------- 1,2,3,*,5(1 row)
  • array_delete(anyarray)

    描述:清空数组中的元素并返回一个同类型的空数组。

    返回类型:anyarray

    示例:

    gaussdb=# SELECT array_delete(ARRAY[1,8,3,7]) AS RESULT; result -------- {}(1 row)
  • array_deleteidx(anyarray, int)

    描述:从数组中删除指定下标的元素并返回剩余元素组成的数组。

    返回类型:anyarray

    示例:

    gaussdb=# SELECT array_deleteidx(ARRAY[1,2,3,4,5], 1) AS RESULT;  result----------- {2,3,4,5}(1 row)

    array_deleteidx(anyarray, int)此函数在参数a_format_version值为10c和a_format_dev_version值为s1的情况下被禁用。

  • array_extendnull(anyarray, int)

    描述:往数组尾部添加指定个数的null空元素。

    返回类型:anyarray

    示例:

    gaussdb=# SELECT array_extendnull(ARRAY[1,8,3,7],1) AS RESULT;    result --------------{1,8,3,7,null}(1 row)
  • array_extendnull(anyarray, int, int)

    描述:往数组尾部添加指定个数的指定索引的元素。

    返回类型:anyarray

    示例:

    gaussdb=# SELECT array_extendnull(ARRAY[1,8,3,7],2,2) AS RESULT;    result --------------{1,8,3,7,8,8}(1 row)

    array_extendnull(anyarray, int, int)此函数在参数a_format_version值为10c和a_format_dev_version值为s1的情况下有效。

  • array_trim(anyarray, int)

    描述:从数组尾部删除指定个数个元素。

    返回类型:anyarray

    示例:

    gaussdb=# SELECT array_trim(ARRAY[1,8,3,7],1) AS RESULT; result--------- {1,8,3}(1 row)
  • array_exists(anyarray, int)

    描述:检查第二个参数是否是数组的合法下标。

    返回类型:boolean

    示例:

    gaussdb=# SELECT array_exists(ARRAY[1,8,3,7],1) AS RESULT; result -------- t(1 row)
  • array_next(anyarray, int)

    描述:根据第二个入参返回数组中指定下标元素的下一个元素的下标。

    返回类型:int

    示例:

    gaussdb=# SELECT array_next(ARRAY[1,8,3,7],1) AS RESULT; result --------      2(1 row)
  • array_prior(anyarray, int)

    描述:根据第二个入参返回数组中指定下标元素的上一个元素的下标。

    返回类型:int

    示例:

    gaussdb=# SELECT array_prior(ARRAY[1,8,3,7],2) AS RESULT; result --------  1(1 row)
  • string_to_array(text, text [, text])

    描述:使用第二个text指定分隔符,使用第三个可选的text作为NULL值替换模板,如果分隔后的子串与第三个可选的text完全匹配,则将其替换为NULL。

    返回类型:text[]

    示例:

     1 2 3 4 5 6 7 8 910
    gaussdb=# SELECT string_to_array('xx~^~yy~^~zz', '~^~', 'yy') AS RESULT;    result    -------------- {xx,NULL,zz}(1 row)gaussdb=# SELECT string_to_array('xx~^~yy~^~zz', '~^~', 'y') AS RESULT;   result   ------------ {xx,yy,zz}(1 row)
  • unnest(anyarray)

    描述:扩大一个数组为一组行。

    返回类型:setof anyelement

    示例:

    123456
    gaussdb=# SELECT unnest(ARRAY[1,2]) AS RESULT; result --------      1      2(2 rows)
support.huaweicloud.com/centralized-devg-v3-opengauss/gaussdb-12-0366.html