CHARINDEX 函数 - Amazon Redshift

CHARINDEX 函数

返回指定子字符串在字符串中的位置。

有关类似的函数,请参阅POSITION 函数STRPOS 函数

语法

CHARINDEX( substring, string )

参数

substring

要在 string 中搜索的子字符串。

string

要搜索的字符串或列。

返回类型

INTEGER

CHARINDEX 函数返回与子字符串的位置对应的 INTEGER(从 1 开始,而不是从 0 开始)。此位置基于字符数而不是字节数,这是为了将多字节字符作为单字符计数。如果在字符串未找到子字符串,CHARINDEX 将返回 0

示例

要显示字符串 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 | +-----------+-------+