intarray
1维整数数组的额外函数、运算符和索引支持
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
intarray | 1.5 | FUNC | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4960 | intarray | 否 | 否 | 否 | 是 | 是 | 否 | - |
| 相关扩展 | arraymath floatvec aggs_for_vecs aggs_for_arrays collection hstore pgbson parray_gin btree_gin btree_gist |
|---|
版本
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
| 1.5 | 1.5 | 1.5 | 1.5 | 1.5 |
安装
提示:这是 PostgreSQL 内核自带的 contrib 扩展
SQL
用法
提供操作无空值整数数组的函数和运算符,支持 GiST 和 GIN 索引以实现快速数组搜索。
SQL
函数
| 函数 | 说明 | 示例 |
|---|---|---|
icount(int[]) | 元素数量 | icount('{1,2,3}') – 3 |
sort(int[], dir) | 排序数组('asc' 或 'desc') | sort('{3,1,2}','asc') – {1,2,3} |
sort_asc(int[]) | 升序排序 | sort_asc('{3,1,2}') – {1,2,3} |
sort_desc(int[]) | 降序排序 | sort_desc('{3,1,2}') – {3,2,1} |
uniq(int[]) | 去除相邻重复元素 | uniq(sort('{1,2,3,2,1}')) – {1,2,3} |
idx(int[], item) | 第一次匹配的索引 | idx('{11,22,33}', 22) – 2 |
subarray(int[], start, len) | 提取子数组 | subarray('{1,2,3,4}', 2, 2) – {2,3} |
intset(int) | 创建单元素数组 | intset(42) – {42} |
运算符
| 运算符 | 说明 |
|---|---|
&& | 数组重叠(有共同元素) |
@> | 左数组包含右数组 |
<@ | 左数组被右数组包含 |
# | 元素数量 |
+ | 数组连接 / 追加元素 |
- | 移除元素 |
| | 数组并集 |
& | 数组交集 |
@@ | 数组匹配查询表达式 |
~~ | 查询表达式匹配数组 |
索引支持
SQL