array_append ( anycompatiblearray, anycompatible )
→ anycompatiblearray
向一个数组的末端追加一个元素 (等同于 anycompatiblearray || anycompatible 操作符)。
array_append(ARRAY[1,2], 3)
→ {1,2,3}
|
array_cat ( anycompatiblearray, anycompatiblearray )
→ anycompatiblearray
连接两个数组(等同于 anycompatiblearray || anycompatiblearray 操作符)。
array_cat(ARRAY[1,2,3], ARRAY[4,5])
→ {1,2,3,4,5}
|
array_dims ( anyarray )
→ text
返回数组维度的文本表示形式。
array_dims(ARRAY[[1,2,3], [4,5,6]])
→ [1:2][1:3]
|
array_fill ( anyelement, integer[]
[, integer[] ] )
→ anyarray
返回一个包含给定值的拷贝的数组,其维数与第二个参数指定的长度相同。
可选的第三个参数提供每个维度的下界值(默认为全部为 1)。
array_fill(11, ARRAY[2,3])
→ {{11,11,11},{11,11,11}}
array_fill(7, ARRAY[3], ARRAY[2])
→ [2:4]={7,7,7}
|
array_length ( anyarray, integer )
→ integer
返回请求的数组维度的长度。
array_length(array[1,2,3], 1)
→ 3
|
array_lower ( anyarray, integer )
→ integer
返回请求的数组维度的下界。
array_lower('[0:2]={1,2,3}'::integer[], 1)
→ 0
|
array_ndims ( anyarray )
→ integer
返回数组的维度数。
array_ndims(ARRAY[[1,2,3], [4,5,6]])
→ 2
|
array_position ( anycompatiblearray, anycompatible [, integer ] )
→ integer
返回阵列中第二个参数中第一次发生的下标,如果它不存在,则返回NULL。
如果给出了第三个参数,则搜索从该下标开始。数组必须是一维的。比较是使用IS NOT DISTINCT FROM语义进行的,所以可以搜索NULL。
array_position(ARRAY['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], 'mon')
→ 2
|
array_positions ( anycompatiblearray, anycompatible )
→ integer[]
返回作为第一个参数的数组中第二个参数所有出现的下标的数组。
数组必须是一维的。使用IS NOT DISTINCT FROM语义完成比较,所以可以搜索NULL。
只有当数组为NULL时才返回NULL;如果在数组中没有找到该值,则返回空数组。
array_positions(ARRAY['A','A','B','A'], 'A')
→ {1,2,4}
|
array_prepend ( anycompatible, anycompatiblearray )
→ anycompatiblearray
在数组的开头添加一个元素(等同于anycompatible || anycompatiblearray操作符)。
array_prepend(1, ARRAY[2,3])
→ {1,2,3}
|
array_remove ( anycompatiblearray, anycompatible )
→ anycompatiblearray
从数组中移除与给定值相等的所有元素。数组必须是一维的。使用IS NOT DISTINCT FROM语义完成比较,所以可以删除NULL。
array_remove(ARRAY[1,2,3,2], 2)
→ {1,3}
|
array_replace ( anycompatiblearray, anycompatible, anycompatible )
→ anycompatiblearray
将等于第二个参数的每个数组元素替换为第三个参数。
array_replace(ARRAY[1,2,5,4], 5, 3)
→ {1,2,3,4}
|
array_to_string ( array anyarray, delimiter text [, null_string text ] )
→ text
将每个数组元素转换为它的文本表现形式,并连接由delimiter符字符串分隔的元素。
如果给出了null_string且不为NULL,则NULL数组项由该字符串表示;否则,它们将被省略。
array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*')
→ 1,2,3,*,5
|
array_upper ( anyarray, integer )
→ integer
返回请求的数组维度的上界。
array_upper(ARRAY[1,8,3,7], 1)
→ 4
|
cardinality ( anyarray )
→ integer
返回数组中元素的总数,如果数组为空则返回0。
cardinality(ARRAY[[1,2],[3,4]])
→ 4
|
trim_array ( array anyarray, n integer )
→ anyarray
通过删除最后的n元素来裁剪数组。
如果数组是多维的,则只裁剪第一个维度。
trim_array(ARRAY[1,2,3,4,5,6], 2)
→ {1,2,3,4}
|
unnest ( anyarray )
→ setof anyelement
将数组展开到一组行。
数组的元素按存储顺序读出。
unnest(ARRAY[1,2])
→
1
2
unnest(ARRAY[['foo','bar'],['baz','quux']])
→
foo
bar
baz
quux
|
unnest ( anyarray, anyarray [, ... ] )
→ setof anyelement, anyelement [, ... ]
将多个数组(可能是不同的数据类型)展开到一组行中。
如果数组的长度不完全相同,那么较短的数组将用NULL填充。
这种形式只在查询的FROM子句中允许;参见第 7.2.1.4 节。
select * from unnest(ARRAY[1,2], ARRAY['foo','bar','baz']) as x(a,b)
→
a | b
---+-----
1 | foo
2 | bar
| baz
|