Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章
OCTETINDEX 函數
所述 OCTETINDEX 函數傳回一個字串作為一個位元組數中的子字串的位置。
語法
OCTETINDEX(substring, string)
引數
- substring
-
CHAR字串、VARCHAR字串或隱含評估為CHAR或VARCHAR類型的運算式。 - string
-
CHAR字串、VARCHAR字串或隱含評估為CHAR或VARCHAR類型的運算式。
傳回類型
- INTEGER
-
OCTETINDEX 函式會傳回與 string 中 substring 位置相對應的
INTEGER值作為位元組數目,其中 string 中的第一個字元會計算為 1。如果 string 不包含多位元組字元,結果會等於 CHARINDEX 函數的結果。如果 string 不包含 substring,則函數會傳回0。如果 substring 為空,則函數會傳回1。
範例
若要傳回字串 Amazon Redshift 中子字串 q 的位置,請使用下列範例。此範例會傳回 0,因為 substring 不在 string 中。
SELECT OCTETINDEX('q', 'Amazon Redshift');+------------+ | octetindex | +------------+ | 0 | +------------+
若要傳回字串 Amazon Redshift 中空白子字串的位置,請使用下列範例。這個範例會傳回 1,因為 substring 是空的。
SELECT OCTETINDEX('', 'Amazon Redshift');+------------+ | octetindex | +------------+ | 1 | +------------+
若要傳回字串 Amazon Redshift 中子字串 Redshift 的位置,請使用下列範例。這個範例會傳回 8,因為 substring 是從 string 的第八個位元組開始。
SELECT OCTETINDEX('Redshift', 'Amazon Redshift');+------------+ | octetindex | +------------+ | 8 | +------------+
若要傳回字串 Amazon Redshift 中子字串 Redshift 的位置,請使用下列範例。這個範例會傳回 21,因為 string 的前六個字元是雙位元組字元。
SELECT OCTETINDEX('Redshift', 'Άμαζον Amazon Redshift');+------------+ | octetindex | +------------+ | 21 | +------------+