POSITION 函數 - Amazon Redshift

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

POSITION 函數

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

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

語法

POSITION(substring IN string )

引數

substring

string 內要搜尋的子字串。

string

要搜尋的字串或欄。

傳回類型

POSITION 函數傳回對應於子字串位置的 INTEGER (以 1 開始,不是以零開始)。位置以字元數為基礎,而不是位元組,所以多位元組字元視為單一字元。如果在字串內找不到子字串,POSITION 會傳回 0

範例

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

SELECT POSITION('fish' IN 'dog'); +-----------+ | position | +-----------+ | 0 | +-----------+

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

SELECT POSITION('fish' IN 'dogfish'); +-----------+ | position | +-----------+ | 4 | +-----------+

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

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

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