#INSTRB

instrb
INSTRB ( expr , sub_character , position , occurrence )

INSTRB函数根据子字符串、起始位置、出现次数在expr表示的字符串中按字节查找,并返回第occurrence次出现的BIGINT类型的位置值,未查找到则返回0。

本函数不支持向量化计算。

expr、sub_character

expr、sub_character,其中sub_character为与expr相同的通用表达式,两个参数的值须为字符型,或可转换为字符型的其他类型,与INSTR函数不同。

  • expr、sub_character不支持32000字节以上的XMLTYPE、LOB类型数据。

  • 当expr的值为NULL时,函数返回NULL。

  • 当sub_character的值为NULL时,函数返回NULL。

position

开始查找的起始位置,是与expr相同的通用表达式,该值须为数值型数据,或可转换为NUMBER类型的其他类型数据。起始位置必须为整数,或可被转换为整数,取值范围[-4294967295, 4294967295]。正整数表示从前往后自起始位置开始查找,负整数表示从后向前自起始位置开始查找。

  • 当position的值为NULL时,函数返回NULL。

  • 当position的值为0时,函数不执行查找并返回0。

  • 当position的值为带有小数的NUMBER类型时,函数截断其小数位保留整数位。

  • 当position的值为浮点类型时,函数将其奇进偶舍至整数。

  • 不指定position时,默认起始位置为1。

occurence

指定按子字符串出现的第几次进行查找,是与expr相同的通用表达式,该值须为数值型数据,或可转换为NUMBER类型的其他类型数据。occurence的值必须为正整数,或可被转换为正整数,取值范围[1,4294967295]。

  • 当occurence的值为NULL时,函数返回NULL。

  • 当occurence的值为带有小数的NUMBER类型时,函数截断其小数位保留整数位。

  • 当occurence的值为浮点类型时,函数将其奇进偶舍至整数。

  • 不指定occurence时,默认为1。

示例(HEAP表)

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
pdf-btn 下载文档
copy-btn 复制链接