substr/substring
substr、substring函数用于返回字符串str从start_position开始,长度为length的子串。
命令格式
substr(string <str>, bigint <start_position>[, bigint <length>])
或
substring(string <str>, bigint <start_position>[, bigint <length>])
参数说明
参数 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
str |
是 |
STRING |
如果输入为BIGINT、DECIMAL、DOUBLE或DATETIME类型,则会隐式转换为STRING类型后参与运算。 |
start_position |
是 |
BIGINT |
表示起始位置。默认起始位置为1。 如果start_position取值为正,则从左边开始。如果start_position取值为负,则从右边开始。 |
length |
否 |
BIGINT |
表示子串的长度值。值必须大于0。 |
返回值说明
返回STRING类型的值。
- str非STRING、BIGINT、DECIMAL、DOUBLE或DATETIME类型时,返回报错。
- length非BIGINT类型或值小于等于0时,返回报错。
- 当length被省略时,返回到str结尾的子串。
- str、start_position或length值为NULL时,返回NULL。
示例代码
返回 k SQL。
SELECT substr('Spark SQL', 5);
返回 SQL。
SELECT substr('Spark SQL', -3);
返回 k。
SELECT substr('Spark SQL', 5, 1);