COUNT_SUBSTRINGS
更新时间:2025-10-17
描述
COUNT_SUBSTRINGS 函数用于计算一个字符串中指定子串出现的次数。注意:当前实现在每次匹配到子串时,会偏移一个子串长度继续查找。例如,当 str='ccc' 且 pattern='cc' 时,返回结果为 1。
语法
SQL
1COUNT_SUBSTRINGS(<str>, <pattern>)
参数
| 参数 | 说明 |
|---|---|
<str> |
需要检测的字符串。类型:STRING |
<pattern> |
需要匹配的子串。类型:STRING |
返回值
返回 INT 类型,表示子串在字符串中出现的次数。
特殊情况:
- 如果 str 为 NULL,返回 NULL
- 如果 pattern 为空字符串,返回 0
- 如果 str 为空字符串,返回 0
示例
- 基本用法
SQL
1SELECT count_substrings('a1b1c1d', '1');
Text
1+----------------------------------+
2| count_substrings('a1b1c1d', '1') |
3+----------------------------------+
4| 3 |
5+----------------------------------+
- 连续逗号的情况
SQL
1SELECT count_substrings(',,a,b,c,', ',');
Text
1+-----------------------------------+
2| count_substrings(',,a,b,c,', ',') |
3+-----------------------------------+
4| 5 |
5+-----------------------------------+
- 重叠子串的情况
SQL
1SELECT count_substrings('ccc', 'cc');
Text
1+--------------------------------+
2| count_substrings('ccc', 'cc') |
3+--------------------------------+
4| 1 |
5+--------------------------------+
- NULL 值处理
SQL
1SELECT count_substrings(NULL, ',');
Text
1+-----------------------------+
2| count_substrings(NULL, ',') |
3+-----------------------------+
4| NULL |
5+-----------------------------+
- 空字符串处理
SQL
1SELECT count_substrings('a,b,c,abcde', '');
Text
1+-------------------------------------+
2| count_substrings('a,b,c,abcde', '') |
3+-------------------------------------+
4| 0 |
5+-------------------------------------+
