OCTETINDEX 函数
OCTETINDEX 函数以字节数形式返回子字符串在字符串中的位置。
语法
OCTETINDEX(substring, string)
参数
- substring
-
CHAR
字符串、VARCHAR
字符串或隐式计算为CHAR
或VARCHAR
类型的表达式。 - string
-
CHAR
字符串、VARCHAR
字符串或隐式计算为CHAR
或VARCHAR
类型的表达式。
返回类型
- INTEGER
-
OCTETINDEX 函数会以字节数的形式返回一个
INTEGER
值,该值与 substring 在 string 中的位置相对应,其中 string 中的第一个字符被计数为 1。如果 string 不包含多字节字符,则结果等于 CHARINDEX 函数的结果。如果 string 不包含 substring,则该函数返回0
。如果 substring 为空,该函数返回1
。
示例
要返回字符串 Amazon Redshift
中子字符串 q
的位置,请使用以下示例。因为 substring 不在 string 中,所以此示例返回 0
。
SELECT OCTETINDEX('q', 'Amazon Redshift');
+------------+ | octetindex | +------------+ | 0 | +------------+
要返回空子字符串在字符串 Amazon Redshift
中的位置,请使用以下示例。因为 substring 为空,所以此示例返回 1
。
SELECT OCTETINDEX('', 'Amazon Redshift');
+------------+ | octetindex | +------------+ | 1 | +------------+
要返回字符串 Amazon Redshift
中子字符串 Redshift
的位置,请使用以下示例。因为 substring 从 string 的第八个字节开始,所以此示例返回 8
。
SELECT OCTETINDEX('Redshift', 'Amazon Redshift');
+------------+ | octetindex | +------------+ | 8 | +------------+
要返回字符串 Amazon Redshift
中子字符串 Redshift
的位置,请使用以下示例。因为 string 的前六个字符是双字节字符,所以此示例返回 21
。
SELECT OCTETINDEX('Redshift', 'Άμαζον Amazon Redshift');
+------------+ | octetindex | +------------+ | 21 | +------------+