#INSTRB
INSTRB函数根据子字符串、起始位置、出现次数在expr表示的字符串中按字节查找,并返回第occurrence次出现的BIGINT类型的位置值,未查找到则返回0。
expr、sub_character 的值须为字符型,或可转换为字符型的其他类型,与INSTR函数不同。
expr、sub_character不支持32000字节以上的XMLTYPE、LOB类型数据。
当expr的值为NULL时,函数返回NULL。
sub_character为与expr相同的通用表达式,当sub_character的值为NULL时,函数返回NULL。
本函数只支持作用于单机及共享集群部署模式下的HEAP表。
position
开始查找的起始位置,该值须为数值型数据,或可转换为NUMBER类型的其他类型数据。
position为与expr相同的通用表达式,当position的值为NULL时,函数返回NULL。
当position的值为0时,函数不执行查找并返回0。
起始位置必须为整数,当position的值为带有小数的NUMBER类型时,函数截断其小数位保留整数位;若position的值为浮点类型时,函数将其四舍五入至整数。正整数表示从头开始的起始位置且向尾查找,负整数表示从尾开始的起始位置且向头查找。
不指定position时,默认起始位置为1。
occurence
指定按子字符串出现的第几次进行查找,该值须为数值型数据,或可转换为NUMBER类型的其他类型数据。occurence为与expr相同的通用表达式,当occurence的值为NULL时,函数返回NULL。
occurence的值必须为正整数,或可被转换为正整数,当occurence的值为带有小数的NUMBER类型时,函数截断其小数位保留整数位;若occurence的值为浮点类型时,函数将其四舍五入至整数。
不指定occurence时,默认为1。
示例
SELECT INSTRB('abc', 'a') FROM DUAL;
INSTRB('ABC','A')
---------------------
1
SELECT INSTRB('abc', 'b') FROM DUAL;
INSTRB('ABC','B')
---------------------
2
SELECT INSTRB('一天一夜一天','一夜',7) FROM DUAL;
INSTRB('一天一夜一天','一夜'
------------------------------------
7
SELECT INSTRB('一天一夜一天','一夜',7.4) FROM DUAL;
INSTRB('一天一夜一天','一夜'
------------------------------------
7