本节描述那些检查和操作二进制数值的函数和操作符.
这个环境里的字串包括类型
BYTEA
的数值.
SQL
定义了一些有特殊语法的字串函数,
在这些函数里使用特殊关键字而不是逗号来分隔参数.
详情请见
Table 4-8
.
一些函数也实现了使用常用语法进行函数调用的方法.
(参阅
Table 4-9
.)
Table 4-8.
SQL
二进制字串函数和操作符
函数 |
函数类型 |
描述 |
例子 |
结果 |
string
||
string
|
bytea
|
字串连接
|
'\\\\Postgre'::bytea || '\\047SQL\\000'::bytea
|
\\Postgre'SQL\000
|
octet_length
(
string
) |
integer
|
二进制字串中的字节数目 |
octet_length('jo\\000se'::bytea)
|
5
|
position
(
substring
in
string
) |
integer
|
指定子字串的位置 |
position('\\000om'::bytea in 'Th\\000omas'::bytea)
|
3
|
substring
(
string
[
from
integer
] [
for
integer
]) |
bytea
|
抽取子字串
|
substring('Th\\000omas'::bytea from 2 for 3)
|
h\000o
|
trim
([
both
]
characters
from
string
)
|
bytea
|
从
string
的开头/结尾/两端删除
只包含
characters
的最长的字串.
|
trim('\\000'::bytea from '\\000Tom\\000'::bytea)
|
Tom
|
还有一些二进制字串处理函数可以使用,在下面列出.
其中有一些是在内部使用,用于实现上面列出的
SQL
标准的字串函数的.
Table 4-9. 其它二进制字串函数
函数 |
返回类型 |
描述 |
例子 |
结果 |
btrim
(
string
bytea
,
trim
bytea
) |
bytea
|
从
string
的开头和结尾删除(截断)
只包含在
trim
里面的字符的最长的字串.
|
btrim('\\000trim\\000'::bytea,'\\000'::bytea)
|
trim
|
length
(
string
) |
integer
|
二进制字串的长度
|
length('jo\\000se'::bytea)
|
5
|
encode
(
string
bytea
,
type
text
)
|
text
|
把二进制字串编码为只包含
ASCII
的表现形式.
类型是∶'base64','hex','escape'.
|
encode('123\\000456'::bytea, 'escape')
|
123\000456
|
decode
(
string
text
,
type
text
)
|
bytea
|
把前面用 encode() 编码的放在
string
里的
二进制字串解码.参数类型和 encode() 里的一样.
|
decode('123\\000456', 'escape')
|
123\000456
|
|