在Oracle SQL中,我想计算一个字符串中的所有逗号,不包括双引号内的逗号。
在下一个示例中,计数必须为3
:
'string1,string2,"string,3",string4'
在下一个示例中,计数也必须是3
:
'string1,string2,"string,3","string,4"'
REGEXP_COUNT(my_string, ',')
分别返回4
和5
,这是我最好的尝试,但它总是返回1
:
SELECT REGEXP_COUNT(my_string, ',*^(.*".*".*),*')
FROM (
SELECT 'string1,string2,"string,3",string4' AS my_string
FROM DUAL);
答案 0 :(得分:0)
首先删除有问题的字符串,然后进行计数
<强> Sql Fiddle Demo 强>
SELECT REGEXP_COUNT(
REGEXP_REPLACE(my_string, '(\"[^\"]*\")', ''),
',')
FROM (
SELECT 'string1,string2,"string,3",string4' AS my_string
FROM DUAL);