表 9.54 显示了可用于数组类型的专用操作符。除此之外,表 9.1 中显示的常用比较操作符也适用于数组。比较操作符逐个元素地比较数组内容,使用元素数据类型的默认 B 树比较函数,并根据第一个差异进行排序。在多维数组中,元素按行主序访问(最后一个下标变化最快)。如果两个数组的内容相等,但维度不同,则维度信息中的第一个差异决定排序顺序。
表 9.54. 数组操作符
操作符 描述 例子 |
---|
第一个数组是否包含第二个数组,即,第二个数组中出现的每个元素是否等于第一个数组的某个元素?(重复项不作特殊处理,因此
|
第一个数组是否被第二个数组包含?
|
数组是否重叠,即,是否有任何共同的元素?
|
连接两个数组。连接空数组或空数组是空操作;否则,数组必须具有相同数量的维度(如第一个例子所示),或者维度数量相差一(如第二个例子所示)。如果数组的元素类型不相同,它们将被强制转换为公共类型(参见 第 10.5 节)。
|
将一个元素连接到数组的前面(该数组必须为空或一维)。
|
将一个元素连接到数组的末尾(该数组必须为空或一维)。
|
有关数组操作符行为的更多详细信息,请参见 第 8.15 节。有关哪些操作符支持索引操作的更多详细信息,请参见 第 11.2 节。
表 9.55 显示了可用于数组类型的函数。有关这些函数的使用方法的更多信息和示例,请参见 第 8.15 节。
表 9.55. 数组函数
函数 描述 例子 |
---|
将一个元素追加到数组的末尾(与
|
连接两个数组(与
|
返回数组维度的文本表示形式。
|
返回一个用给定值的副本填充的数组,其维度由第二个参数指定的长度决定。可选的第三个参数为每个维度提供下限值(默认为所有
|
返回所请求的数组维度的长度。(对于空或缺失的数组维度,产生 NULL 而不是 0。)
|
返回所请求的数组维度的下限。
|
返回数组的维度数。
|
返回数组中第二个参数第一次出现的下标,如果不存在则返回
|
返回一个数组,其中包含第二个参数在作为第一个参数给定的数组中所有出现位置的下标。该数组必须是一维的。比较使用
|
将一个元素添加到数组的开头(与
|
从数组中移除所有等于给定值的元素。该数组必须是一维的。比较使用
|
将数组中每个等于第二个参数的元素替换为第三个参数。
|
返回一个从
|
随机打乱数组的第一维。
|
将每个数组元素转换为其文本表示形式,并将它们用
|
返回所请求数组维度的上界。
|
返回数组中元素的总数,如果数组为空,则返回 0。
|
通过删除最后
|
将数组展开为一组行。数组的元素按存储顺序读出。
1 2
foo bar baz quux |
将多个数组(可能是不同的数据类型)展开为一组行。如果数组的长度不完全相同,则较短的数组会用
a | b ---+----- 1 | foo 2 | bar | baz |
另请参阅 第 9.21 节 关于与数组一起使用的聚合函数 array_agg
。
如果您在文档中发现任何不正确的内容,与您对特定功能的体验不符,或需要进一步澄清的内容,请使用此表单报告文档问题。