本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 | +-----------+-------+