POSITION 函数 - Amazon Redshift

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 | +-----------+-------+