select count(distinct x.temp) from (select substr(a.a, b.rn, 1) as temp, b.rn, a.a from (select replace('9-2-8-4-2-6', '-') as a from dual) a, (select rownum as rn from dual connect by level <= length(replace('9-2-8-4-2-6', '-', ''))) b) x order by rn
select count(*) from (select count(A) from table group by A)
如果是一个值...用一句SQL就太难了...
connect by level<= length('9-2-8-4-2-6')-length(replace('9-2-8-4-2-6','-'))+1试试看
http://topic.csdn.net/u/20081002/00/f8d90ba2-e2bb-412a-a0c5-1b6d518fc22a.html
from (select substr(a.a, b.rn, 1) as temp, b.rn, a.a
from (select replace('9-2-8-4-2-6', '-') as a from dual) a,
(select rownum as rn
from dual
connect by level <= length(replace('9-2-8-4-2-6', '-', ''))) b) x
order by rn