FUNCTION数组函数和操作符
array_sample
从 array 中随机选取 n 个项并返回一个数组。n 不能超过 array 第一维的长度。如果 array 是多维数组,则一个“项”是具有给定第一维下标的一个切片。
Returns an array of n items randomly selected from array.
数组函数和操作符 引入 16 现存至 20 devel 1 条签名 0 次签名变更
- 分组
- 数组函数和操作符
- 签名数
- 1 条
- 引入版本
- 16
- 状态
- 现存
- 签名变更
- 未变过
- 本版来源
- 同版手册译文
版本轨迹
相对 PostgreSQL 17 无变化。
说明
array 中随机选取 n 个项并返回一个数组。n 不能超过 array 第一维的长度。如果 array 是多维数组,则一个“项”是具有给定第一维下标的一个切片。array_sample ( array anyarray, n integer ) → anyarray从
array 中随机选取 n 个项并返回一个数组。n 不能超过 array 第一维的长度。如果 array 是多维数组,则一个“项”是具有给定第一维下标的一个切片。签名
PostgreSQL 18.7 里 array_sample 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。
-
array_sample(arrayanyarray,ninteger) →anyarray从array中随机选取n个项并返回一个数组。n不能超过array第一维的长度。如果array是多维数组,则一个“项”是具有给定第一维下标的一个切片。array_sample(ARRAY[1,2,3,4,5,6], 3){2,6,1}array_sample(ARRAY[[1,2],[3,4],[5,6]], 2){{5,6},{1,2}}
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。
-
PostgreSQL 16 ← 15 新增此函数
PostgreSQL 16 起可用
签名矩阵
每条签名在给出了签名的 5 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。
存在 不存在
同组函数
| 函数 | 签名 | 主签名 | 版本变动 | 最近变更 |
|---|---|---|---|---|
array_append |
1 | array_append ( anycompatiblearray, anycompatible ) → anycompatiblearray |
141 次 | |
| 向一个数组的末端追加一个元素(等同于 anycompatiblearray || anycompatible 操作符)。 | 现存 | |||
array_cat |
1 | array_cat ( anycompatiblearray, anycompatiblearray ) → anycompatiblearray |
141 次 | |
| 连接两个数组(等同于 anycompatiblearray || anycompatiblearray 操作符)。 | 现存 | |||
array_dims |
1 | array_dims ( anyarray ) → text |
— | |
| 返回数组维度的文本表示形式。 | 现存 | |||
array_fill |
1 | array_fill ( anyelement, integer[] [, integer[] ] ) → anyarray |
9.31 次 | |
| 返回用给定值的副本填充的数组,各维的长度由第二个参数指定。可选的第三个参数提供各维的下界值(默认均为 1)。 | 现存 | |||
array_length |
1 | array_length ( anyarray, integer ) → integer |
— | |
| 返回请求的数组维度的长度。(对于空或缺失的数组维度,返回 NULL 而不是 0。) | 现存 | |||
array_lower |
1 | array_lower ( anyarray, integer ) → integer |
8.11 次 | |
| 返回请求的数组维度的下界。 | 现存 | |||
array_ndims |
1 | array_ndims ( anyarray ) → integer |
— | |
| 返回数组的维度数。 | 现存 | |||
array_position |
1 | array_position ( anycompatiblearray, anycompatible [, integer ] ) → integer |
141 次 | |
| 返回第二个参数在数组中首次出现的下标;若不存在,则返回 NULL。如果给出了第三个参数,则搜索从该下标开始。数组必须是一维的。比较是使用 IS NOT DISTINCT FROM 语义进行的,所以可以搜索 NULL。 | 现存 | |||
array_positions |
1 | array_positions ( anycompatiblearray, anycompatible ) → integer[] |
141 次 | |
| 返回第二个参数在第一个参数所给数组中所有出现位置的下标数组。数组必须是一维的。使用 IS NOT DISTINCT FROM 语义完成比较,所以可以搜索 NULL。只有当数组为 NULL 时才返回 NULL;如果在数组中没有找到该值,则返回空数组。 | 现存 | |||
array_prepend |
1 | array_prepend ( anycompatible, anycompatiblearray ) → anycompatiblearray |
141 次 | |
| 在数组的开头添加一个元素(等同于 anycompatible || anycompatiblearray 操作符)。 | 现存 | |||
array_remove |
1 | array_remove ( anycompatiblearray, anycompatible ) → anycompatiblearray |
141 次 | |
| 从数组中移除与给定值相等的所有元素。数组必须是一维的。使用 IS NOT DISTINCT FROM 语义完成比较,所以可以删除 NULL。 | 现存 | |||
array_replace |
1 | array_replace ( anycompatiblearray, anycompatible, anycompatible ) → anycompatiblearray |
141 次 | |
| 将等于第二个参数的每个数组元素替换为第三个参数。 | 现存 | |||
array_reverse |
1 | array_reverse ( anyarray ) → anyarray |
— | |
| 反转数组的第一维。 | 现存 | |||
array_sample |
1 | array_sample ( array anyarray, n integer ) → anyarray |
— | |
| 从 array 中随机选取 n 个项并返回一个数组。n 不能超过 array 第一维的长度。如果 array 是多维数组,则一个“项”是具有给定第一维下标的一个切片。 | 现存 | |||
array_shuffle |
1 | array_shuffle ( anyarray ) → anyarray |
— | |
| 随机打乱数组的第一维。 | 现存 | |||
array_sort |
1 | array_sort ( array anyarray [, descending boolean [, nulls_first boolean ]] ) → anyarray |
— | |
| 对数组的第一维进行排序。排序顺序由数组元素类型的默认排序顺序决定;不过,如果元素类型支持排序规则,也可以通过给 array 参数添加 COLLATE 子句来指定要使用的排序规则。 | 现存 | |||
array_to_string |
1 | array_to_string ( array anyarray, delimiter text [, null_string text ] ) → text |
9.11 次 | |
| 将每个数组元素转换为其文本表示,并将它们用 delimiter 字符串分隔连接起来。如果提供了 null_string 且不是 NULL,则 NULL 数组条目将用该字符串表示;否则将被省略。另请参见 string_to_array。 | 现存 | |||
array_upper |
1 | array_upper ( anyarray, integer ) → integer |
8.11 次 | |
| 返回请求的数组维度的上界。 | 现存 | |||
cardinality |
1 | cardinality ( anyarray ) → integer |
— | |
| 返回数组中元素的总数,如果数组为空则返回 0。 | 现存 | |||
trim_array |
1 | trim_array ( array anyarray, n integer ) → anyarray |
— | |
| 通过删除最后的 n 个元素来裁剪数组。如果数组是多维的,则只裁剪第一个维度。 | 现存 | |||