CHARINDEX函數 - Amazon Redshift

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

CHARINDEX函數

傳回指定子字串在一個字串內的位置。

如需相似函數,請參閱 POSITION函數STRPOS函數

語法

CHARINDEX( substring, string )

引數

substring

string 內要搜尋的子字串。

string

要搜尋的字串或欄。

傳回類型

INTEGER

該CHARINDEX函數返回一個INTEGER對應於子字符串的位置(從 1 開始,而不是從零開始)。位置以字元數為基礎,而不是位元組,所以多位元組字元視為單一字元。CHARINDEX0如果在字符串中找不到子字符串,則返回。

範例

若要顯示字串 fish 在單字 dog 內的位置,請使用下列範例。

SELECT CHARINDEX('fish', 'dog'); +-----------+ | charindex | +-----------+ | 0 | +-----------+

若要顯示字串 fish 在單字 dogfish 內的位置,請使用下列範例。

SELECT CHARINDEX('fish', 'dogfish'); +-----------+ | charindex | +-----------+ | 4 | +-----------+

下列範例會使用範TICKIT例資料庫中的資料SALES表。如需詳細資訊,請參閱範本資料庫

若要從SALES表格傳回佣金超過 999.00 的不同銷售交易數,請使用下列範例。此命令透過檢查佣金值開頭的小數是否超過 4 位元來計算大於 999.00 的佣金。

SELECT DISTINCT CHARINDEX('.', commission), COUNT (CHARINDEX('.', commission)) FROM sales WHERE CHARINDEX('.', commission) > 4 GROUP BY CHARINDEX('.', commission) ORDER BY 1,2; +-----------+-------+ | charindex | count | +-----------+-------+ | 5 | 629 | +-----------+-------+