如果一个表中某个如datarule_types字段,包含多种类型,并且是用符号分隔的。若此时要统计每个类型的数量可以使用如下代码
SELECT t.DATARULE_TYPE, count(*) FROM (select id,
regexp_substr(DATARULE_TYPES, '[^,]+', 1, level) DATARULE_TYPE
from datarule
where 1=1
connect by level <= regexp_count(DATARULE_TYPES, ',')+1
and id = prior id
and prior dbms_random.value is not NULL) t GROUP BY t.DATARULE_TYPE