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.