Oracle RegExp用于计算字符后的单词

时间:2014-09-17 16:52:43

标签: sql regex count words

我想在Oracle数据库表的全名字段中标识逗号后面出现的单词数。

名称字段包含" LAST,FIRST MIDDLE"的格式。 有些名称可能最多有4到5个名称,例如" DOE,JOHN A B"

例如,如果名称字段=' WILLIAMS JR,HANK'它会输出1(在逗号之后出现1个单词。

如果姓名字段=' DOE,JOHN A B'我希望它输出3。

我想使用regexp_count函数来确定此计数。 我使用以下代码来确定字段中存在多少个单词,并希望对其进行修改以包含此功能:

  

REGEXP_COUNT(REPLACE(字段名称,',',','),' [^] +')

为了找到逗号,可能需要删除替换函数,但这是迄今为止我能做的最好的。

非常感谢帮助!

2 个答案:

答案 0 :(得分:0)

以下内容如何:

REGEXP_COUNT( fieldname, "\\w", INSTR(fieldname, ",")+1)

答案 1 :(得分:0)

我已按如下方式更新了代码,该代码似乎正常工作:

REGEXP_COUNT(fieldname, '[^ ]+', (INSTR(fieldname, ',')+1))