OCTETINDEX 函数 - Amazon Redshift

OCTETINDEX 函数

OCTETINDEX 函数以字节数形式返回子字符串在字符串中的位置。

语法

OCTETINDEX(substring, string)

参数

substring

CHAR 字符串、VARCHAR 字符串或隐式计算为 CHARVARCHAR 类型的表达式。

string

CHAR 字符串、VARCHAR 字符串或隐式计算为 CHARVARCHAR 类型的表达式。

返回类型

INTEGER

OCTETINDEX 函数会以字节数的形式返回一个 INTEGER 值,该值与 substringstring 中的位置相对应,其中 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 的位置,请使用以下示例。因为 substringstring 的第八个字节开始,所以此示例返回 8

SELECT OCTETINDEX('Redshift', 'Amazon Redshift'); +------------+ | octetindex | +------------+ | 8 | +------------+

要返回字符串 Amazon Redshift 中子字符串 Redshift 的位置,请使用以下示例。因为 string 的前六个字符是双字节字符,所以此示例返回 21

SELECT OCTETINDEX('Redshift', 'Άμαζον Amazon Redshift'); +------------+ | octetindex | +------------+ | 21 | +------------+