View a markdown version of this page

OCTETINDEX 函数 - Amazon Redshift

2026 年 6 月 30 日之后,Amazon Redshift 不再支持使用 Python UDF。我们将分阶段开始执行。有关 Python 生命周期终止和迁移选项详情的更多信息,请参阅 2025 年 6 月 30 日发布的博客文章。

OCTETINDEX 函数

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

语法

OCTETINDEX(substring, string)

参数

substring

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

字符串

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 | +------------+