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
|