本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
POSITION 函數
傳回指定子字串在一個字串內的位置。
如需相似函數,請參閱 CHARINDEX 函數 和 STRPOS 函數。
語法
POSITION(substring IN string )
引數
- substring
-
在 string 內要搜尋的子字串。
- string
-
要搜尋的字串或欄。
傳回類型
POSITION 函數會傳回INTEGER
對應於子字串位置的 (以一個為基礎,而非以零為基礎)。位置以字元數為基礎,而不是位元組,所以多位元組字元視為單一字元。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 | +-----------+-------+