数组函数
Hologres兼容PostgreSQL,支持使用标准的PostgreSQL语法进行开发。
Hologres已支持的数组函数列表如下。当前Hologres版本支持的函数是PostgreSQL的一个子集,函数的使用方法请参见数组函数。
使用限制
array_max
、array_min
、array_contains
、array_except
、array_distinct
、array_union
函数暂不支持常量查询,例如:select array_max(ARRAY[-2, NULL, -3, -12, -7]);
。
操作符
操作符 | 返回类型 | 描述 | 用例 | 结果 |
@> | BOOLEAN | 判断两个数组是否为包含关系。 | SELECT ARRAY[1,2,3] @> ARRAY[1,2]; | t |
<@ | BOOLEAN | 判断两个数组是否为被包含关系。 | SELECT ARRAY[1,2,3] <@ ARRAY[1,2]; | f |
&& | BOOLEAN | 判断两个数组是否有相同元素。 说明 Hologres从V1.3.37版本开始支持Array列作为输入。 | SELECT ARRAY[1,2,3] && ARRAY[1,2]; | t |
函数列表
函数名 | 返回类型 | 描述 | 用例 | 结果 |
array_to_string(anyarray,text[,text]) | TEXT | 使用提供的定界符和可选的空串连接数组元素。 | array_to_string(ARRAY[1, 2, 3], ',') | 1,2,3 |
array_agg(anyelement) | ARRAY | 将表达式的值串联到数组中。
|
|
|
array_agg (expression[ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ] | ARRAY | 将表达式的值串联到数组中。Hologres从V1.3版本开始支持filter过滤 |
|
|
array_append(anyarray, anyelement) | ARRAY | 添加元素至数组的尾部。 | array_append(ARRAY[1,2], 3) | {1,2,3} |
array_cat(anyarray,anyarray) | ARRAY | 连接两个数组。 | array_cat(ARRAY[1,2,3], ARRAY[4,5]) | {1,2,3,4,5} |
array_ndims(anyarray) | ARRAY | 返回数组的维度数。 | array_ndims(ARRAY[[1,2,3], [4,5,6]]) | 2 |
array_dims(anyarray) | ARRAY | 使用文本形式表示数组的维度。 | array_dims(ARRAY[[1,2,3], [4,5,6]]) | [1:2][1:3] |
array_length(anyarray, int) | ARRAY | 返回被请求的数组维度的长度。 | array_length(ARRAY[1,2,3], 1) | 3 |
array_lower(anyarray, int) | ARRAY | 返回ANYARRAY数组维度的下限。 | array_lower('[0:2]={1,2,3}'::int[], 1) | 0 |
array_positions(anyarray, anyelement) | ARRAY | 返回在第一个参数给定的数组(数组必须是一维的)中, 第二个参数所有出现位置的下标组成的数组。 | array_positions(ARRAY['A','A','B','A'], 'A') | {1,2,4} |
array_prepend(anyelement, anyarray) | ARRAY | 添加元素至数组的头部。 | array_prepend(1, ARRAY[2,3]) | {1,2,3} |
array_remove(anyarray, anyelement) | ARRAY | 从数组中移除所有等于给定值的所有元素。 | array_remove(ARRAY[1,2,3,2], 2) | {1,3} |
array_sort(anyarray) | ARRAY | 对数组元素进行排序。
| array_sort(ARRAY[1,3,2,1]) | {1,1,2,3} |
array_upper(anyarray, int) | INT | 返回ANYARRAY数组维度的上限。 | array_upper(ARRAY[1,8,3,7], 1) | 4 |
unnest(anyarray) | TEXT | 将数组的每个元素扩展为单独行。 | unnest(ARRAY[1,2]) | 1 2 (2 rows) |
array_max(array) | INT | 返回数组中所有数据的最大值。计算过程中会跳过NULL值。 说明 Hologres V1.3.19及以上版本支持。 |
|
|
array_min(array) | INT | 返回数组中所有数据的最小值。 说明 Hologres V1.3.19及以上版本支持。 |
|
|
array_contains(array, target_value) | BOOLEAN | 如果数组包含 说明 Hologres V1.3.19及以上版本支持。 |
|
|
array_except(array1, array2) | ARRAY | 返回属于 说明 Hologres V1.3.19及以上版本支持。 |
|
|
array_distinct(array) | ARRAY | 从 说明 Hologres V1.3.19及以上版本支持。 |
|
|
array_union(array1, array2) | ARRAY | 返回 说明 Hologres V1.3.19及以上版本支持。 |
|
|