二进制字符串函数和操作符

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

SQL定义了一些字符串函数, 在这些函数里使用关键字而不是逗号来分隔参数。详情请见下表。一些函数可以通过常用的函数调用语法使用(详见表.其他的二进制字符串函数)。

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

函数 返回类型 描述 例子 结果
string || string bytea 字符串连接 E’\ \ \ \Oushu’::bytea || E’\ \047DB\ \000’::bytea \ \Oushu’DB\000
get_bit(string, offset) int 从字符串中提取位 get_bit(E’Th\ \000omas’::bytea, 45) 1
get_byte(string, offset) int 从字符串中提取字节 get_byte(E’Th\ \000omas’::bytea, 4) 109
octet_length(string) int 二进制字符串的字节数 octet_length( E’jo\ \000se’::bytea) 5
position(substring in string) int 特定子字符串的位置 position(E’\ \000om’::bytea in E’Th\ \000omas’::bytea) 3
set_bit(string, offset, newvalue) bytea 在字符串中设置位 set_bit(E’Th\ \000omas’::bytea, 45, 0) Th\000omAs
set_byte(string, offset, newvalue) bytea 在字符串中设置字节 set_byte(E’Th\ \000omas’::bytea, 4, 64) Th\000o@as
substring(string [from int] [for int]) bytea 提取子字符串 substring(E’Th\ \000omas’::bytea from 2 for 3) h\000o
trim([both] bytes from string) bytea 从string的开头和结尾删除只包含 bytes中字节的最长字符串 trim(E’\ \000’::bytea from E’\ \000Tom\ \000’::bytea) Tom

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

表.其他二进制字符串函数

函数 返回类型 描述 例子 结果
btrim(string bytea, bytes bytea) bytea 从string的开头和结尾删除只包含bytes 中字节的最长的字符串 btrim(E’\ \000trim\ \000’::bytea, E’\ \000’::bytea) trim
encode(string bytea, type text) text 把二进制数据编码为文本表现形式。支持的格式:base64, hex, escape。 encode(E‘123\ \000456’::bytea, ‘escape’) 123\000456
length(string) int 二进制串的长度 length(E’jo\ \000se’::bytea) 5
md5(string) text 计算string的MD5散列值,以十六进制方式返回结果。 md5(E’Th\ \000omas’::bytea) 8ab2d3c9689aaf18b4958c334c82d8b1