sql - 统计一个字符在 Oracle SQL 中出现的次数

标签 sql regex string oracle

很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center .




9年前关闭。




如何计算特定字符在 Oracle 列中出现的次数?例如,如果我有一张 table FOO具有类似 a,ABC,def 的数据和 2,3,4,5 ,我想统计逗号在数据中出现的次数。

CREATE TABLE foo (
  str varchar2(30)
);

INSERT INTO foo VALUES( 'a,ABC,def' );
INSERT INTO foo VALUES( '2,3,4,5' );
commit;

我想要的输出是
str         cnt
a,ABC,def   2
2,3,4,5     3

最佳答案

对此的常用技巧之一是使用 length 的组合。和 replace :

select (length(your_col) - length(replace(your_col, ','))) from your_table;

replace 没有第三个参数将简单地删除字符。

关于sql - 统计一个字符在 Oracle SQL 中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10772091/

相关文章:

sql - 枢轴函数返回空值

javascript - JavaScript 中要忽略的单词列表?

java - 用于查找两个字符之间的字符串的正则表达式模式 - 但第二个字符第一次出现

java - 字符串声明 - 两种不同的类型,哪个更好?

mysql - 如何通过sql查询有效检查记录是否存在?

python - 如何在Python中填写插入语句的列名

python - Pandas 与 R 中相同的正则表达式但结果不同

python - 用于查找文件路径的正则表达式

python - 在列表中搜索字符串

mysql - 更新 mysql 表的默认值