OCTETINDEX 函數 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

OCTETINDEX 函數

OCTETINDEX 函數會傳回字串中子字串的位置,以位元組數為單位。

語法

OCTETINDEX(substring, string)

引數

substring

CHAR 字串、VARCHAR 字串或隱含評估為 CHARVARCHAR 類型的運算式。

string

CHAR 字串、VARCHAR 字串或隱含評估為 CHARVARCHAR 類型的運算式。

傳回類型

INTEGER

OCTETINDEX 函數會傳回對應於字串子字串位置INTEGER的值,以位元組數為單位,其中字串中的第一個字元會計算為 1。如果字串不包含多位元組字元,則結果等於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 | +------------+