从 2025 年 11 月 1 日起,Amazon Redshift 将不再支持创建新的 Python UDF。如果您想要使用 Python UDF,请在该日期之前创建 UDF。现有的 Python UDF 将继续正常运行。有关更多信息,请参阅博客文章
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 | +------------+