Oracle问题:某个字符的出现次数
最近解决了一个SQL问题,在某个列中,某个字符的出现次数。写完后参考了下网上大神的做法,然后做一些总结。https://blog.csdn.net/goodleiwei/article/details/10223691大神原帖
思路:
获取字符串数量(上海自来水来自海上);
获取字符串(上海自来水来自海上)替换掉所查找字符(来)后的字符量(上海自水自海上);
两者取差后,除以所查找字符数量即可;
大神思路:
1.将所查找字符串替换为某标识(@);
2.再使用函数,将非标识符字段全部清空;
3.获得标识符数量即可;
相关知识:
参考:https://www.jianshu.com/p/3bcc06b1294b
函数REPLACE(参数A,参数B,参数C)
A中的B替换为C
函数REGEXP_REPLACE(参数A,参数B,参数C)
A中符合正则表达式B的部分替换为C
函数LENGTH(参数A)
参数A,字符串长度
正则[^参数]
所有非参数的字符串
待解决问题:
大佬的代码里,替换写为[^@]+
多了一个加号,据网上搜索,意为可以匹配重复多个字符
但实际操作去除此+号也可使用,不太理解