Postgresql数组操作符及数组函数
表1.数组操作符
操作符 | 描述 | 例子 | 结果 |
---|---|---|---|
=
|
等于 |
ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]
|
t
|
<>
|
不等于 |
ARRAY[1,2,3] <> ARRAY[1,2,4]
|
t
|
<
|
小于 |
ARRAY[1,2,3] < ARRAY[1,2,4]
|
t
|
>
|
大于 |
ARRAY[1,4,3] > ARRAY[1,2,4]
|
t
|
<=
|
小于等于 |
ARRAY[1,2,3] <= ARRAY[1,2,3]
|
t
|
>=
|
大于等于 |
ARRAY[1,4,3] >= ARRAY[1,4,3]
|
t
|
@>
|
包含 |
ARRAY[1,4,3] @> ARRAY[3,1]
|
t
|
<@
|
被包含 |
ARRAY[2,7] <@ ARRAY[1,7,4,2,6]
|
t
|
&&
|
重叠(具有公共元素) |
ARRAY[1,4,3] && ARRAY[2,1]
|
t
|
||
|
数组和数组串接 |
ARRAY[1,2,3] || ARRAY[4,5,6]
|
{1,2,3,4,5,6}
|
||
|
数组和数组串接 |
ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]
|
{{1,2,3},{4,5,6},{7,8,9}}
|
||
|
元素到数组串接 |
3 || ARRAY[4,5,6]
|
{3,4,5,6}
|
||
|
数组到元素串接 |
ARRAY[4,5,6] || 7
|
{4,5,6,7}
|
数组比较使用默认的 B-Tree 在元素数据类型上的比较函数对数组内容按元素逐一进行。 多维数组的元素按照行序进行访问(最后的下标变化最快)。如果两个数组的内容相同但维数不等,那么维度信息中的第一个不同将决定排序顺序。
表2.数组函数
函数 | 返回类型 | 描述 | 例子 | 结果 |
---|---|---|---|---|
|
anyarray
|
向一个数组的末端追加一个元素 |
array_append(ARRAY[1,2], 3)
|
{1,2,3}
|
|
anyarray
|
连接两个数组 |
array_cat(ARRAY[1,2,3], ARRAY[4,5])
|
{1,2,3,4,5}
|
|
int
|
返回数组的维度数 |
array_ndims(ARRAY[[1,2,3], [4,5,6]])
|
2
|
|
text
|
返回数组的维度的文本表示 |
array_dims(ARRAY[[1,2,3], [4,5,6]])
|
[1:2][1:3]
|
|
anyarray
|
返回一个用提供的值和维度初始化好的数组,可以选择下界不为 1 |
array_fill(7, ARRAY[3], ARRAY[2])
|
[2:4]={7,7,7}
|
|
int
|
返回被请求的数组维度的长度 |
array_length(array[1,2,3], 1)
|
3
|
|
int
|
返回被请求的数组维度的下界 |
array_lower('[0:2]={1,2,3}'::int[], 1)
|
0
|
|
int
|
返回数组中第二个参数第一次出现的下标。 起始于第三个参数或第一个元素指示的元素位置(数组必须是一维的) |
array_position(ARRAY['sun','mon','tue','wed','thu','fri','sat'], 'mon')
|
2
|
|
int[]
|
返回作为第一个参数的数组中第二个参数出现的数组下标(数组必须是一维的) |
array_positions(ARRAY['A','A','B','A'], 'A')
|
{1,2,4}
|
|
anyarray
|
向一个数组的首部追加一个元素 |
array_prepend(1, ARRAY[2,3])
|
{1,2,3}
|
|
anyarray
|
从数组中移除所有等于给定值的所有元素(数组必须是一维的) |
array_remove(ARRAY[1,2,3,2], 2)
|
{1,3}
|
|
anyarray
|
将每一个等于给定值的数组元素替换成一个新值 |
array_replace(ARRAY[1,2,5,4], 5, 3)
|
{1,2,3,4}
|
|
text
|
使用提供的定界符和可选的空串连接数组元素 |
array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*')
|
1,2,3,*,5
|
|
int
|
返回被请求的数组维度的上界 |
array_upper(ARRAY[1,8,3,7], 1)
|
4
|
|
int
|
返回数组中元素的总数,如果数组为空则返回 0 |
cardinality(ARRAY[[1,2],[3,4]])
|
4
|
|
text[]
|
使用提供的定界符和可选的空串将字符串划分成数组元素 |
string_to_array('xx~^~yy~^~zz', '~^~', 'yy')
|
{xx,NULL,zz}
|
|
setof anyelement
|
将一个数组扩展成一组行 |
unnest(ARRAY[1,2])
|
(2 rows) |
|
setof anyelement, anyelement [, ...]
|
把多维数组(可能是不同类型)扩展成一个行的集合。 这只允许用在 FROM 子句中 |
unnest(ARRAY[1,2],ARRAY['foo','bar','baz'])
|
(3 rows) |
在array_position
和array_positions
中, 每个数组元素与使用IS NOT DISTINCT FROM
语法的搜索值进行比较。
在array_position
中,如果没有找到该值,则返回NULL
。
在array_positions
中,如果数组是NULL
,则返回NULL
; 如果数组中没有找到该值,相反返回空数组。
在string_to_array
中,如果定界符参数为 NULL,输入字符串中的每一个字符将变成结果数组中的一个独立元素。如果定界符是一个空串,则整个输入字符串被作为一个单一元素的数组返回。否则输入字符串会被在每一个出现定界符字符串的位置分裂。
在string_to_array
中,如果空值串参数被忽略或者为 NULL,输入中的子串不会被替换成 NULL。在array_to_string
中,如果空值串参数被忽略或者为 NULL,该数组中的任何空值元素会被简单地跳过并且不会在输出串中被表示。
Postgresql数组操作符及数组函数相关推荐
- PostgreSQL数组操作符函数
9.18. 数组函数和操作符 表 9-45显示了可以用于 array 类型的操作符. 表 9-45. Array 操作符 操作符 描述 例子 结果 = 等于 ARRAY[1.1,2.1,3.1]::i ...
- php数组(数组的定义、使用、删除数组、数组操作符、数组排序、数组元素查找、数组的常用函数)
什么是数组 数组是一种数据类型,在PHP中广泛应用. 数组是一个可以存储一组或一系列数值的变量. 在PHP中,数组中的元素分为两个部分,分别为键(Key)和值(Value). "键" ...
- 如何从PostgreSQL json中提取数组
如何从PostgreSQL json中提取数组 作者 digoal 日期 2016-09-10 标签 PostgreSQL , json , 数组 , jsonb 背景 在PostgreSQL中使用J ...
- 指针数组,数组指针,指针函数,函数指针,二级指针详解
先看个简单的:char *p,这定义了一个指针,指针指向的数据类型是字符型,char *(p)定义了一个指针P: char *p[4], 为指针数组,由于[]的优先级高于*,所以p先和[]结合,p[ ...
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- C++阶段01笔记07【指针(基本概念、变量定义和使用、内存空间、空指针和野指针、const修饰指针、指针和数组、指针和函数)】
C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 7 指针 7.1 指针的基本概念 7.2 指针变量的定义和使用 示例 7.3 指针所占内存空间 示例 7.4 空指针和野指针 示 ...
- A01_[NumPy中文网]数组基础(创建数组,多维数组切片,数组属性)、使用数组(基本操作符,数组特殊运算符)、索引(花式索引,布尔索引,缺省索引)
NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在 ...
- 【C++深度剖析教程12】数组操作符的重载
之前写的C++学习记录忘记打编号了,从今天开始,所有内容,记录编号,方便以后的查阅复习.今天学习的是C++中,数组操作符的重载. 上一篇博文写的是介绍C++中的字符串类,我们知道,C++标准库中通过s ...
- PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素
摘要: 标签 PostgreSQL , 多重函数数组 , UDF索引 , 过滤 , 文本处理 背景 PG的数组类型,被广泛应用于 画像系统 , 标签系统. 在一些业务重建中,对数组内容的定义往往包含了 ...
最新文章
- Windows平台下程序打包流程
- SystemProperities
- CTFshow php特性 web143
- 使用Python操作MySQL数据库
- 用Java访问带有Kerberos认证的HBase
- shiro学习(12)No WebApplicationContext found:
- 动态游标for循环_【【动图算法】(动态规划篇):最长回文子串
- 计算机word表格平均分,Word表格自动求和_word求平均值 - 学无忧
- 学习C语言目标及规划
- 20190904_chip-seq/ ATAC-seq/DAP-seq 原理理解
- sql 按照天环比_同比环比sql实例
- python爬虫--爬取-猫眼电影-代码
- FTP服务器的搭建及测试
- 如何舒服的在电视上操作电脑
- 王牌战士没显示我的服务器,王牌战士号没了怎么回事 游戏档案被销号解决方法...
- 中后台管理系统之登录流程
- 计算机键盘清洗怎么弄,笔记本电脑键盘怎么清洗干净(专业户教你清洗键盘简易方法)...
- UTF8编码的原理及白名单过滤utf8mb4(Caused by: java.sql.BatchUpdateException: Incorrect string value)
- MindManager中文汉化补丁V2021.20思维导图软件
- 4399客户端实习生笔试