SUBSTRB
返回一个八位字节值,表示指定字符串的子字符串。
行为类型
不可变语法
SUBSTRB ( string , position [ , extent ] )
参数
string
- (CHAR/VARCHAR) 是用来提取子字符串的字符串。
position
- (INTEGER 或 DOUBLE PRECISION)是子字符串的开始位置(八位字节从 1 计数)。
extent
- (INTEGER 或 DOUBLE PRECISION)是要提取的子字符串长度(八位字节)。默认为字符串结束位置
注意
-
此函数将多字节字符形式字符串视为八位字节,并且使用八位字节数字作为传入和传出位置说明符与长度。字符串本身为 VARCHAR 类型,但视为每个八位字节都是单独字符。
-
SUBSTRB 可以截断 DOUBLE PRECISION 输入值。
示例
=> SELECT SUBSTRB('soupçon', 5);
SUBSTRB
---------
çon
(1 row)
=> SELECT SUBSTRB('soupçon', 5, 2);
SUBSTRB
---------
ç
(1 row)
如果使用 BINARY/VARBINARY,Vertica 返回以下错误消息:
=>SELECT SUBSTRB('abc'::binary(3),1);
ERROR: function substrb(binary, int) does not exist, or permission is denied for substrb(binary, int)
HINT: No function matches the given name and argument types. You may need to add explicit type casts.