PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.5. 二进制串函数和操作符

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 9.5. 二进制串函数和操作符 本节描述那些检查和操作类型为bytea的值的函数和操作符。 SQL定义了一些使用关键字而不是逗号来分割参数的串函数。详情请见表 9.11。PostgreSQL也提供了这些函数使用常规函数调用语法的版本(参阅表 9.12)。

9.5. 二进制串函数和操作符

本节描述那些检查和操作类型为bytea的值的函数和操作符。

SQL定义了一些使用关键字而不是逗号来分割参数的串函数。详情请见表 9.11PostgreSQL也提供了这些函数使用常规函数调用语法的版本(参阅表 9.12)。

注意

本页中显示的示例结果假设服务器参数bytea_output被设置为escape(传统PostgreSQL格式)。

表 9.11. SQL二进制串函数和操作符

函数 返回类型 描述 例子 结果
string || string bytea 串连接 E'\\\\Post'::bytea || E'\\047gres\\000'::bytea \\Post'gres\000
octet_length(string) int 二进制串中的字节数 octet_length(E'jo\\000se'::bytea) 5
overlay(string placing string from int[for int]) bytea 替换子串 overlay(E'Th\\000omas'::bytea placing E'\\002\\003'::bytea from 2 for 3) T\\002\\003mas
position(substring in string) int 指定子串的位置 position(E'\\000om'::bytea in E'Th\\000omas'::bytea) 3
substring(string [from int] [for int]) bytea 提取子串 substring(E'Th\\000omas'::bytea from 2 for 3) h\000o
trim([bothbytes from string) bytea string的开头或结尾删除只包含出现在bytes中的字节的最长串 trim(E'\\000\\001'::bytea from E'\\000Tom\\001'::bytea) Tom

还有一些二进制串处理函数可以使用,在表 9.12列出。 其中有一些是在内部使用,用于实现表 9.11列出的 SQL 标准串函数。

表 9.12. 其他二进制串函数

函数 返回类型 描述 例子 结果
btrim(string byteabytes bytea) bytea string的开头或结尾删除只包含出现在bytes中的字节的最长串 btrim(E'\\000trim\\001'::bytea, E'\\000\\001'::bytea) trim
decode(string text,format text) bytea string中的文本表示解码二进制数据。format的参数和在encode中一样。 decode(E'123\\000456', 'escape') 123\000456
encode(data bytea,format text) text 将二进制数据编码为一个文本表示。支持的格式有:base64hexescapeescape将零字节和高位组字节转换为八进制序列(\nnn)和双反斜线。 encode(E'123\\000456'::bytea, 'escape') 123\000456
get_bit(stringoffset) int 从串中抽取位 get_bit(E'Th\\000omas'::bytea, 45) 1
get_byte(stringoffset) int 从串中抽取字节 get_byte(E'Th\\000omas'::bytea, 4) 109
length(string) int 二进制串的长度 length(E'jo\\000se'::bytea) 5
md5(string) text 计算string的MD5哈希码,以十六进制形式返回结果 md5(E'Th\\000omas'::bytea) 8ab2d3c9689aaf18 b4958c334c82d8b1
set_bit(string,offsetnewvalue) bytea 设置串中的位 set_bit(E'Th\\000omas'::bytea, 45, 0) Th\000omAs
set_byte(string,offsetnewvalue) bytea 设置串中的字节 set_byte(E'Th\\000omas'::bytea, 4, 64) Th\000o@as

get_byteset_byte把一个二进制串中的一个字节计数为字节 0。get_bitset_bit在每一个字节中从右边起计数位;例如位 0 是第一个字节的最低有效位,而位 15 是第二个字节的最高有效位。

参见第 9.20 节中的聚集函数string_agg以及第 34.4 节中的大对象函数。

本文转自PostgreSQL中文社区,原文链接:9.5. 二进制串函数和操作符

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4天前
|
SQL 关系型数据库 数据库
SQL 42501: Postgresql查询中的权限不足错误
SQL 42501: Postgresql查询中的权限不足错误
|
4天前
|
SQL 关系型数据库 MySQL
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
11 0
|
2月前
|
SQL 存储 Python
Microsoft SQL Server 编写汉字转拼音函数
Microsoft SQL Server 编写汉字转拼音函数
|
2月前
|
SQL 关系型数据库 分布式数据库
在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
【2月更文挑战第22天】在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
15 1
|
2月前
|
SQL 存储 Apache
在 Apache Flink SQL 中,并没有内置的 GROUP_CONCAT 函数
【2月更文挑战第16天】在 Apache Flink SQL 中,并没有内置的 GROUP_CONCAT 函数
201 2
|
3月前
|
SQL 存储
SQL Server基本函数
SQL Server基本函数
|
10月前
|
SQL Cloud Native 关系型数据库
ADBPG(AnalyticDB for PostgreSQL)是阿里云提供的一种云原生的大数据分析型数据库
ADBPG(AnalyticDB for PostgreSQL)是阿里云提供的一种云原生的大数据分析型数据库
759 1
|
10月前
|
数据可视化 关系型数据库 MySQL
将 PostgreSQL 迁移到 MySQL 数据库
将 PostgreSQL 迁移到 MySQL 数据库
1084 2

热门文章

最新文章