返回字符串str从start_position开始,长度为length的子串。
命令格式
string substr(string <str>, bigint <start_position>[, bigint <length>])
参数说明
str:必填。STRING类型。如果输入为BIGINT、DECIMAL、DOUBLE或DATETIME类型,则会隐式转换为STRING类型后参与运算。
start_position:必填。BIGINT类型,默认起始位置为1。
Hive兼容数据类型版本:当start_position为0时,与起始位置为1时相同。
1.0和2.0数据类型版本:当start_position为0时,返回NULL。
length:可选。BIGINT类型,表示子串的长度值。值必须大于0。
重要如果
setproject odps.function.strictmode=false
时:length值小于0时,会返回空白。如果
setproject odps.function.strictmode=true
时:length值小于0时,会返回错误。
返回值说明
返回STRING类型。返回规则如下:
str非STRING、BIGINT、DECIMAL、DOUBLE或DATETIME类型时,返回报错。
length非BIGINT类型或值小于等于0时,返回报错。
当length被省略时,返回到str结尾的子串。
str、start_position或length值为NULL时,返回NULL。
使用示例
示例1:返回字符串
abc
从指定位置开始,指定长度的子串。命令示例如下。--返回bc。 select substr('abc', 2); --返回b。 select substr('abc', 2, 1); --返回bc。 select substr('abc',-2 , 2);
示例2:任一输入参数为NULL。命令示例如下。
--返回NULL。 select substr('abc', null);
相关函数
SUBSTR函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数。