POSITION 函数
返回指定子字符串在字符串中的位置。
有关类似的函数,请参阅CHARINDEX 函数和STRPOS 函数。
语法
POSITION(substring IN string )
参数
- substring
-
要在 string 中搜索的子字符串。
- string
-
要搜索的字符串或列。
返回类型
POSITION 函数返回与子字符串的位置对应的 INTEGER
(从 1 开始,而不是从 0 开始)。此位置基于字符数而不是字节数,这是为了将多字节字符作为单字符计数。如果在字符串中未找到子字符串,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 | +-----------+-------+